Java学习总结3

学习总结
什么是类
类:是一组相关属性和行为的集合。可以看成是一 类事物的模板,使用事物的属性特征和行为特征来描述该类事物。现实中,描述-类事物:
属性:就是该事物的状态信息。
行为:就是该事物能够做什么。
举例:小猫。
属性:名字、体重、年龄、颜色。
行为:走、跑、叫。

什么是对象
对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友) ,必然具备该类事物的属性和行为。现实中,-类事物的一个实例: - -只小猫。
举例: - -只小猫。

类与对象的关系:
1、类是对一类事物的描述,是抽象的。
2、对象是类事物的实例,是具体的。
3、类是对象的模板,对象是类的实体。

定义:
定义类:就是定义类的成员,包括成员变量和成员方法。
成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
成员方法:和以前定义方法几乎是一 样的。只不过把static去掉,static的作用在面向对象后面课程中再详细讲解。

1.导包也就是指出需要使用的类,在什么位置。
import 包名称类名称;
对于和当前类属于同一个包的情况,可以省略导包语句不写。
2.创建,格式:
类名称 对象名= new 类名称();
例如:Student stu = new Student( );
3.使用,分为两种情况:
使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名(参数)

注意事项:
如果成员变量没有进行赋值,那么将会有一一个默认值, 规则和数组-样。

构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。
格式:
public 类名称(参数类型参数名称) {
方法体
}
注意事项:
1.构造方法的名称必须和所在的类名称完全样,就连大小写也要一-样
2.构造方法不要写返回值类型,连void都不写
3.构造方法不能return一个具体的返回值
4.如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法, 没有参数、方法体什么事情都不做。
public Student() {}
5.一旦编写了至少一一个构造方法,那么编译器将不再赠送。
'static'
如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类。多个对象共享同一份数据。
一旦使用static修饰成员方法, 那么这就成为了静态方法。静态方法不属于对象,而属于类的。如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它。如果有了static关键字,那么不需要创建对象,直接就能通过类名称来使用它。无论是成员变量,还是成员方法。如果有了static, 都推荐使用类名称进行调用。
静态变量:类名称.静态变量
静态方法:类名称.静态方法()
静态方法当中不能使用this

一、实验目的

(1) 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
(2)理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
(3)理解static修饰付对类、类成员变量及类方法的影响。
二、实验内容
1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color, width 和height都是double型的,而color 则是String 类型的。要求该类具有:
(1)使用构造函数完成各属性的初始赋值
(2)使用gt.()和set...()的形式完成属性的访问及修改
(3)提供计算面积的getArea()方法和计算周长的getLength()方法

2.银行的账户记录 Account有账户的唯一-性标识 (11 个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一一个账户时,银行方面提供-一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。

package pta.two;

public class Rectangle {
    private double width;
    private double height;
    private String color;

    public Rectangle() {
    }

    public Rectangle(double width, double height, String color) {
        this.width = width;
        this.height = height;
        this.color = color;
    }

    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

定义一个构造方法和Rectangle类

package pta.two;
import java.util.Random;

public class testRectangleS {
    public static void main(String[] args) {
        Random s=new Random();

        double randomwidth=s.nextDouble();
        System.out.println("随机高:"+randomwidth);
            double randomheigth=s.nextDouble();
        System.out.println("随机宽:"+randomheigth);
        System.out.println("面积="+getArea(randomheigth,randomwidth));

        System.out.println("周长="+getLength(randomheigth,randomwidth));

    }

    public static double getArea(double a,double b) {
double area=a*b;
return area;

    }
    public static double getLength(double c,double d){
        double length=2*c+2*d;
        return length;
    }

在这里我用的是Random类,也即是电脑随机给的数值,并没有自己赋值;
运行结果:

package pta.two;

public class Bank {
    private String num;//账号标识
    private double money;//存款取款额度
    private int password;//密码


    private  String name;//姓名
    private String day;//开户日期
    private double balance;//余额

    public Bank() {
    }

    public Bank(String acount, double money, int password, String name, String day, double balance) {
        this.num = acount;
        this.money = money;
        this.password = password;
        this.name = name;
        this.day = day;
        this.balance = balance;
    }

    public String getAcount() {
        return num;
    }

    public void setAcount(String acount) {
        this.num = acount;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public double getPassword() {
        return password;
    }

    public void setPassword(int password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDay() {
        return day;
    }

    public void setDay(String day) {
        this.day = day;
    }

    public double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }
}
package pta.two;

import java.util.Scanner;

public class testBank {
    public static void main(String[] args) {


        Scanner name = new Scanner(System.in);
        String df = name.next();
        System.out.println("name:" + df);

        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();

        System.out.println("money:" +revisemoney(x));

        System.out.println("输入原密码:");
        Scanner m = new Scanner(System.in);
        int w = m.nextInt();

        System.out.println("请输入新密码:");
        Scanner mi = new Scanner(System.in);
        int ma = mi.nextInt();

        System.out.println("请确定新密码:");
        Scanner password = new Scanner(System.in);
        int pw = password.nextInt();
        int i=0;
        if ((w == 123456)&&(ma==pw)) {
            System.out.println("已修改密码为:" + resivepassword(w,ma));
            w = pw;
            i=i+1;
        }
        else{
            System.out.println("密码不对");
        }
    }
 private static int revisemoney(int a) {
        int sum=0;
        sum=sum+a;
        return a;

    }

    private static int resivepassword(int p, int q)
    {
        p=q;
        return p;
    }


}


本题
初步运行结果:存款,修改密码。

进一步代码:

package pta.two;

        import java.util.Scanner;

public class testBank {
    public static void main(String[] args) {
        String[] array = new String[]{"430321ha123"};
        System.out.println("输入你的标识:");
        Scanner num = new Scanner(System.in);
        String ac = num.next();
        if (ac.equals("430321ha123")) {
            System.out.println("输入你的姓名:");
            Scanner name = new Scanner(System.in);
            String df = name.next();
            if (df.equals("黄安") || df.equals("huangan")) {
                System.out.println("name:" + "  " + df + "  " + ac);

                System.out.print("存款:");
                Scanner sc = new Scanner(System.in);
                int money = sc.nextInt();
                System.out.println("余额:" + revisemoney(money));

                System.out.print("取款:");
                Scanner e = new Scanner(System.in);
                int f = e.nextInt();
                if (f <= money)
                    System.out.println("余额:" + plasemoney(f, money));
                else {
                    System.out.println("对不起!你的余额不足");
                }

                System.out.println("输入原密码:");
                Scanner m = new Scanner(System.in);
                int w = m.nextInt();
                if(w==123456)
                {
                    System.out.println("请输入新密码:");
                    Scanner mi = new Scanner(System.in);
                    int ma = mi.nextInt();

                    System.out.println("请确定新密码:");
                    Scanner password = new Scanner(System.in);
                    int pw = password.nextInt();
                    int i = 0;
                    if (ma == pw) {
                        System.out.println("已修改密码为:" + resivepassword(w, ma));
                        w = pw;
                        i = i + 1;
                    }
                    else{
                        System.out.println("新密码不准确!");System.exit(0);
                    }
                }
                else{
                    System.out.println("原密码不对");System.exit(0);
                }
                System.out.println("今日账户变动时间:");
                Scanner day = new Scanner(System.in);
                String rq = day.next();
                System.out.println("账户变动日期:" + rq);
            } else {
                System.out.println("姓名不准确!");
            }
        }


        else{
            System.out.println("标识不正确!");
        }
    }



    private static int revisemoney(int a) {
        int sum=0;
        sum=sum+a;
        return a;
    }


    private static int resivepassword(int p, int q)
    {
        p=q;
        return p;
    }

    private static int plasemoney(int b,int money){
        return money-b;
    }
}



最终运行结果(算法和变量都有):





posted on 2019-09-20 19:03  Mi_Yun  阅读(144)  评论(0编辑  收藏  举报