实验二 Java简单类与对象(银行的账户记录与写一个名为Rectangle的类表示矩形)
一、实验目的
(1)掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
(2)理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
(3)理解static修饰付对类、类成员变量及类方法的影响。
二、实验内容
1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
2.银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
实验一
1.思路 :定义一个类Rectangle ,再在类中分别设置和获取width,height,color的方法,再建立getLength(),double getArea()两个方法,并在测试类中输出。
2.测试类代码如下
package Oop;
public class Text2 {
public static void main(String[] args) {
Rectangle rectangle=new Rectangle(15.1,16.5,"白色");
System.out.println("矩形宽度为:"+rectangle.getWidth());
System.out.println("矩形高度为:"+rectangle.getHeight());
System.out.println("矩形颜色为:"+rectangle.getColor());
System.out.println("矩形面积为:"+rectangle.getArea());
System.out.println("矩形周长为:"+rectangle.getLength());
}
}
3.Rectangle类
package Oop;
public class Rectangle { /*定义矩形类*/
private double width;
private double height;
private String color;
public Rectangle(double width,double height,String color) {
this.color=color;
this.height=height;
this.width=width;
}
public void setWidth(double n){/*设置矩形宽度*/
width=n;
return;
}
public void setHeight(double m) { /*设置矩形高度*/
height=m;
return;
}
public void setColor(String str) { /*设置矩形颜色*/
color=str;
return;
}
public double getWidth() {/*取得矩形宽度*/
return width;
}
public double getHeight() {/*取得矩形高度*/
return height;
}
public String getColor() {/*取得矩形颜色*/
return color;
}
public double getArea() {
return width*height;
}
public double getLength(){
return 2*(width+height);
}
}
4.运行结果
实验二
1.思路:与实验一差不多。
2.测试类
package Oop;
import java.util.Scanner;
public class Bank {
public static void main(String[] args) {
Banks a=new Banks("131415926",0);
System.out.println("请问您是否需要开户?\n 1.是 2.否");
Scanner scanner=new Scanner(System.in);
if(scanner.nextInt()==1) {
System.out.println("请输入您的真实姓名:");
a.setName(scanner.next());
System.out.println("初始密码为:\"123456\"安全系数低\n请修改密码!");
a.changepassword();
a.cunqian(200001);
System.out.println("请选择你要使用的功能\n 1.存钱 2.取钱 3.修改密码 4.查询账户信息 5.退出");
switch (scanner.nextInt()) {
case 1: {
System.out.println("输入你要存的金额:");
a.cunqian(scanner.nextInt());
break;
}
case 2:{
System.out.println("请输入你要取的金额:");
a.quqian(scanner.nextInt());
if(scanner.nextInt()>a.getBalance()) {
System.out.println("您的钱包不足!!!");
}
break;
}
case 3:{
a.changepassword();
}
default:
break;
}
System.out.println("账户标识:"+a.getId());
System.out.println("账户归属人:"+a.getName());
System.out.println("开户日期:"+a.date());
System.out.println("当前余额:"+a.getBalance());
}
else {
System.out.println("谢谢您的使用,欢迎下次再来!");
}
System.out.println("谢谢您的使用,欢迎下次再来!");
}
}
3.Banks类
package Oop;
import java.util.Date;
import java.util.Scanner;
class Banks {
private String id;
private String name;
private String password;
private Date date;
private double balance;
public Banks() {
}
public Banks(String id,double balance) {
this.setId(id);
this.setName(name);
this.date=new Date();
this.password="123456";
this.setBalance(balance);
}
public String getId() {
return id;
}
public String getName() {/*获取姓名*/
return name;
}
public Date getDate() {/*获取开户日期*/
return date;
}
public String getPassword() {
return password;
}
public double getBalance() {/*获取账户余额*/
return balance;
}
public void setId(String i) {/*设置初始id*/
id=i;
}
public void setName(String n) {/*设置姓名*/
name=n;
}
public void setDate(Date d) {
date=d;
}
public void setPassword(String p) {
password=p;
}
public void setBalance(double b) {/*设置账户*/
balance=b;
}
public void cunqian(double money) {/*存钱*/
this.balance=this.balance+money;
}
public void quqian(double money) {/*取钱*/
this.balance=this.balance-money;
}
public Date date() {
return date;
}
public void changepassword() {/*改密码*/
Scanner sc=new Scanner(System.in);
System.out.println("请输入新密码:");
String password=sc.nextLine();
}
}
4.运行结果
四、总结:1.本次实验是让我们了解封装,使用set,get,private,this等关键词的使用,让我们更了解如何去使用方法调用,开始的时候出现了很多错误,比如不能使用static静态方法调用非静态方法,烧脑,有学到了一个新的Data方法,java.util.Date 该类的每一个实例用于表示时间默认当时设备的时间。
2.在图二中测试取钱这个地方的时候想用以下代码去实现一个输入值scanner.nextInt()去比较的时候if中的scanner.nextInt()又输入了一遍,用赋值也没能解决,用a.quqian(scanner.nextInt()代替scanner.nextInt()也不成,直接呜呜呜!
System.out.println("请输入你要取的金额:");
a.quqian(scanner.nextInt());
if(scanner.nextInt()>a.getBalance()) {
System.out.println("您的钱包不足!!!");
}