第四周课程总结&实验报告

实验二 Java简单类与对象

  • 实验目的
  • 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
  • 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
  • 理解static修饰付对类、类成员变量及类方法的影响。
  • 实验内容
  1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

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

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

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

实验代码:

package 实验2;


public class Rectangle {
    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()+"\n高:"+rec.getHeight()+"\n颜色:"+rec.getColor());
    }
    
    double width,height;
    String color="red";        
    public double getHeight() {
        return height;                
    }
    public double getWidth() {
        return width;
    }
    public String getColor() {
        return color;
    }
    public void setHeight(double height) {
        this.height = height;        
    }
    public void setWidth(double width) {
        this.width = width;
    }
    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);
    }
}

实验结果:

 

 

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

 实验代码:

package 实验2;
import java.util.Scanner;
public class Banksystem{
    private String name,date="2019.9.20";
    private int key=123456,money=0;
    private String ccount="Barcelona";
        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 int getKey() {
        return key;
    }
    public void setCipher(int key) {
        this.key = key;
    }
    public int getMoney() {
        return money;
    }
    public void setMoney(int money) {
        this.money = money;
    }
    public String getCcount() {
        return ccount;
    }
    public void setCcount(String ccount) {
        this.ccount = ccount;
    }
    public void username(){                   
        System.out.print("用户名称:");
        Scanner username = new Scanner(System.in);
        String name = username.nextLine();
        setName(name);
    }
    public void ChangePWD(){                    
        System.out.print("请输入您要更改的密码:");
        Scanner userkey = new Scanner(System.in);
        int key = userkey.nextInt();
        setCipher(key);
    }
    public void all(){                                    
        System.out.print("用户名:"+name+"\n开户日期:"+date+"\n账号:"+ccount+"\n密码:"+key+"\n余额:"+money+"\n");
    }
    public void Depositsandwithdrawals(){
        System.out.print("存款:1\n"+"取款:0\n");
        System.out.print("请选择:");
        Scanner j = new Scanner(System.in);
        int i = j.nextInt();
        if(i==0) {
        System.out.print("取款数:");
        Scanner usermoney = new Scanner(System.in);
        int money = usermoney.nextInt();
        money=this.money-money;
        System.out.print("操作成功!当前余额:"+money);
        setMoney(money);
        }
        else {
        System.out.print("存款数:");
        Scanner usermoney = new Scanner(System.in);
        int money = usermoney.nextInt();
        money=this.money+money;
        System.out.print("操作成功!当前余额:"+money);
        setMoney(money);
        }
    }
    public static void main(String[] args) {
        System.out.print(" Welcome\n");
        System.out.print("进入系统请按:1\n");
        System.out.print("请输入你要操作的序号:");
        Scanner j = new Scanner(System.in);
        int J = j.nextInt();
        int I=0;
        Banksystem user = new Banksystem();
        for(int k=1;k>0;) {
            if(J==1||I==1) {
                System.out.print("开通用户:1\n"+"更改密码:2\n"+"查询信息:3\n"+"存款取款:4\n");
                System.out.print("请输入你要操作的序号:");
                Scanner b = new Scanner(System.in);
                int B = b.nextInt();
                if(B==1) {
                    user.username();
                }else if(B==2){
                    user.ChangePWD();
                }else if(B==3){
                    user.all();
                }else if(B==4){
                    user.Depositsandwithdrawals();
                }
                System.out.print("返回主页:1\n"+"退出系统:0\n");
                System.out.print("请输入你要操作的序号:");
                Scanner i = new Scanner(System.in);
                I = i.nextInt();
                J=0;
            }else{
                break;
        }
      }
        System.out.print("已安全退出,感谢使用!");
    }   
}

实验结果:

 

 

 

 

 

 

 

学习总结:

这次的实验主要是让我们掌握类的定义,掌握用类作为类型声明变量和方法返回值,理解类和对象的区别,其中,构造方法的名称必须与类名称一致;构造方法的声明处不能有任何返回值类型的声明;不能在构造方法中使用return返回一个值。还有就是熟悉属性、构造函数、方法的作用;掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;理解static修饰付对类、类成员变量及类方法的影响。在上课时,老师讲的课很有激情,跟着老师来的话还是很好理解的,所以听老师说的那些类的用法倒是蛮轻松的,下课后用起来却是蛮费劲,感觉要消化的东西有点多,代码还是要多打打。

第一个题目难度不大,老师上课的时候基本就讲了,所以做起来也没什么问题。

第二题的话难度相比于第一题要大点,因为是做一个类似于银行账户的东西,当我们进行一步操作后,它里面储存的东西就会改变,我们需要将改变的东西保存下来,这个点对之前的我们来说是有难度的,还好老师上课讲了get和set,加上第一题写了类似的题,还是顺利解决了,但是目前的这个账户还比较低级,比如密码开头不能为0,账号那里也没有做什么操作等等,这些问题还需要进一步解决,完善。生命在于创造,还要努力!

 

posted @ 2019-09-20 11:48  阳光盐巴  阅读(195)  评论(0编辑  收藏  举报