第四周课程总结&试验报告(二)

实验二 Java简单类与对象

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

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

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

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

一: 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值

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

(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
1)实验代码:

public class Rectangle {     
	    private String color="红色";
	    private double width;
	    private double height;
	    public void setColor(String color) {         //构造法为属性初始化         
	        this.color=color;
	    }
	    public void setWidth(double width) {
	        this.width=width;
	    }
	    public void setHeight(double height) {
	        this.height=height;
	    }
	    public String getColor() {
	        return color;
	    }
	    public double getWidth() {
	        return width;
	    }
	    public double getHeight() {
	        return height;
	    }
	    public  double getArea() {          //计算面积
	        return width*height;
	    }
	    public double getLength() {           //计算周长
	        return 2*(width+height);    
	    }
	        public static void main(String args[]) {
	            Rectangle r=new Rectangle();
	            r.setWidth(29);
	            r.setHeight(30);
	            System.out.println("高 ="+r.getHeight());
	            System.out.println("宽 ="+r.getWidth());
	            System.out.println("颜色为:"+r.getColor());
	            System.out.println("面积为:"+r.getArea());
	            System.out.println("周长为:"+r.getLength());
	            
	    }
	    
	}

2)实验结果

遇到的问题:
计算周长时遗漏了宽和高的另一边,只计算了宽和高的一边,导致答案错误,最后检查的时候发现了并改正了。

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

1)实验代码

import java.util.Scanner;
public class Bank {          //声明
	Scanner sc=new Scanner(System.in);
	private String kaihu="qwertyuiopa0";
	private String name;
	private String  time;
	private String mima;
	private int money;
	public String getKaihu() {    //构造法为属性初始化
		return kaihu;
	}
	public void setKaihu(String kaihu) {
		this.kaihu = kaihu;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTime() {
		return time;
	}
	public void setTime(String time) {
		this.time = time;
	}
	public String getMima() {
		return mima;
	}
	public void setMima(String mima) {
		this.mima = mima;
	}
	public int getMoney() {
		return money;
	}
	public void setMoney(int money) {
		this.money = money;
	}
    public void land(){             //界面,用switch进行选择
    	System.out.println("选项:0 账户标识,1 姓名,2 取款,3 存款,4 改密码, 5 out");
    	int a=sc.nextInt();
    	switch(a) {
    	case(0):kaihu();
    	break;
    	case(1):name();
    	break;
    	case(2):qukuan();
    	break;
    	case(3):cunkuan();
    	break;
    	case(4):mima();
    	break;
    	case(5):out();
    	break;
    	}
    }
	private void kaihuriqi() {
		// TODO Auto-generated method stub
		
	}
	private void yue() {
		// TODO Auto-generated method stub
		
	}
	
	private void zhanghubiaoshi() {
		// TODO Auto-generated method stub
		
	}
	public void kaihu() {            //输出账户的标识
		System.out.println("输出账户的标识"+kaihu);
		 System.out.println("2019年9月20日");
		land();
	}
	public void name() {        //姓名
		System.out.println("请输入你的姓名");
		Scanner sc=new Scanner(System.in);
		String a=sc.nextLine();
		name+=a;
		land();	
	}
	public void cunkuan() {        //存款
		System.out.println("请输入存款数");
		Scanner sc=new Scanner(System.in);
		int a=sc.nextInt();
		money+=a;
		System.out.println("余额:"+money);
		land();
	}
	public void qukuan() {          //取款
		System.out.println("请输入取款数");
		Scanner sc=new Scanner(System.in);
		int a=sc.nextInt();
		money-=a;
		System.out.println("余额:"+money);
		land();
	}
	public void mima() {           //密码
		System.out.println("请输入你的密码");
		Scanner sc=new Scanner(System.in);
		String a=sc.nextLine();
		mima=a;
		System.out.println("密码为"+mima);
		land();
	}
	public void out() {             //返回界面
		land();
	}
	public static void main(String args[]) {
	    Bank a=new Bank();
	   a.land();
	}
}

2)结果截图

遇到的问题:
刚开始属性的初始化我搞错了一个,而且这道题的密码没有输出来,所以我向老谢请教了这个问题,最后在检查中发现了问题,原来是密码的英文大小写被我搞混淆了,所以把大写字母改成小写就对了。

总结:本周的Java感觉还好,因为第一题很简单,所以我按照书上的构造法来写很快就写出来了,不过第二题有点难,可能是我之前没遇到这种题型,而且我刚开始还没有理解这道题,所以就直接输出了,之后问了李钰·之后才知道我这种方法不行,所以我跟老谢讨论了一下这道题的思路,最后决定用switch·来输入,所以最后做出来了。

本周学到的知识点:构造法和String类,还复习了一下c语言的switch语句。

原文地址:https://www.cnblogs.com/tzmad/p/11541471.html