第二次实验报告及学习总结

1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

(1) 使用构造函数完成各属性的初始赋值

(2) 使用get…()和set…()的形式完成属性的访问及修改

(3) 提供计算面积的getArea()方法和计算周长的getLength()方法

实验代码:

   package xingqisan;

   public class Rectangle {                    //定义Rectangle类
        private double width;                       
        private double height;
        private String color;                //定义属性
        public double getHeight() {
            return height;                  //取得height属性
        }
        public void setHeight(double height) {
            this.height = height;          //设置height属性下同
        }
        public double getWidth() {
            return width;
        }
        public void setWidth(double width) {
            this.width = width;
        }
        public String getColor() {
            return color;
        }
        public void setColor(String color) {
            this.color = color;
        }
        
        public void getArea() {
            double area=0;
            area=this.height*this.width;
            System.out.println("面积为"+area);
        }
        public void getLength() {
            double length=0;
            length=(this.height+this.width)*2;
            System.out.println("周长为"+length);
        }
        public static void main(String args[]) {
            Rectangle rec=new Rectangle();
            rec.setWidth(3);
            rec.setHeight(4);
            rec.setColor("黄色");
            rec.getArea();
            rec.getLength();
            System.out.println("长:"+rec.getWidth()+",高:"+rec.getHeight()+",颜色:"+rec.getColor());
        }
   }

实验结果截图:

第二次实验报告及学习总结_第1张图片

实验所遇问题:

1.首先代码太过繁琐,应该有比这简单很多的代码,但是现还无法实现
2.还不太理解this关键字的应用,这里面只是根据书上的应用来。
3.输出问题,加号和逗号的位置没有注意,所以一直显示程序错误。
4.对set和get的理解问题,对其理解不是很好,还得通过视频多加学习。
5.对于最后要新创建一个类不懂。

银行的账户

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

实验代码:

   package xingqisan;
   import java.util.Scanner; 

   public class yinhang {    //定义初始参数 
      Scanner sc = new Scanner(System.in);
      private String characteristic="qwertyuiop1";
      private String name;
      private String date;
      private double meony=0;
      private String word;
      public String getWord() {   //设置属性
            return word;
        }
        public void setWord(String word) {   //取得属性(下同)
            this.word = word;
        }
    public String getCharacteristic() {
        return characteristic;
    }
    public void setCharacteristic(String characteristic) {
        this.characteristic = characteristic;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public double getMeony() {
        return meony;
    }
    public void setMeony(double meony) {
        this.meony = meony;
    }
    public void land() {   //登陆界面
        System.out.println("请选择操作:0.开户,1.查询账户信息,2.存款,3.取款,4.更改密码,5.退出");
        int a = sc.nextInt();
        switch(a) {  //用switch进行选择操作
        case(0):     //每个选项构建该选项的方法
            newacounnt(); 
            break;
        case(1):
            acounnt();  
            break;
        case(2):
            get();
            break;
        case(3):
            put();
            break;
        case(4):
            password();
            break;
        case(5):
            setout();
            break;
        }
        
    }
public void newacounnt() {    //开户
    System.out.println("请输入用户名");
    Scanner sc = new Scanner(System.in);
    String a = sc.nextLine();
    setName(a);
    System.out.println("请设置密码");
    Scanner sc1 = new Scanner(System.in);
    String a1 = sc.nextLine();
    word=a1;
    System.out.println("请输入日期");
    Scanner sc11 = new Scanner(System.in);
    String a11 = sc1.nextLine();
    date=a11;
    land();
}
public void acounnt() {      //输出账户信息
    System.out.println("标识符:"+characteristic+"\n用户名"+name+"\n开户日期"+date+"\n余额"+meony);
    land();
}
public void get() {          //存款
    System.out.println("请输入存款数额:");
    int a = sc.nextInt();
    meony=meony+a;
    System.out.println("当前余额为:"+meony);
    land();
}
public void put() {         //取款
    System.out.println("请输入取款数额:");
    int a = sc.nextInt();
    if(a>meony) {
        System.out.println("余额不足!");    
    }
    else {      
        meony=meony-a;
        System.out.println("当前余额为:"+meony);
    }
    land();
}
public void password() {   //修改密码
    System.out.println("请输入新密码:");
    Scanner sc = new Scanner(System.in);
    String a = sc.nextLine();
    word=a;
    System.out.println("新密码为:"+word);
    land();
}
public void setout() {      //退出系统
    System.out.println(0);
}
public static void main(String args[]) {
    yinhang a=new yinhang();
    a.land();
}
}

实验结果截图:

第二次实验报告及学习总结_第2张图片

第二次实验报告及学习总结_第3张图片

第二次实验报告及学习总结_第4张图片

实验所遇问题:

1.在下面定义的方法输入中,有多个输入的没有加上相应的new。
2.方法的定义较为简单,但在主函数中引用上面定义的方法时不知道怎么引用,后查询只需要新建立一个对象才能实现引用。
3.不知道如何将底下的方法与登陆land联系起来,解决:在每个方法后加入land()。

总结:

这周的作业看起来比较复杂但写起来还是很容易,主要用到的方法就是面向对象编程。另外感觉用java写代码比c语言要方便许多。

你可能感兴趣的:(第二次实验报告及学习总结)