实验二 Java简单类与对象
实验目的
掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
理解static修饰付对类、类成员变量及类方法的影响。
实验内容
1、写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
2、银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
package leo; class Demo1 { private double width; private double height; private String color; public Demo1(String color,double width,double height) { this.setWidth(width); this.setHeight(height); this.setColor(color); } public void tell() { System.out.print("面积:"+getArea()+"周长:"+getLength()+"颜色:"+this.getColor()); } 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; } public double getLength() { double length=getWidth()*2+getHeight()*2; return length; } public double getArea() { double area=getWidth()*getHeight(); return area; } } public class Gz方法{ public static void main(String[]args) { Demo1 a=new Demo1("红色",12,13); a.tell(); } }
package images; import java.util.Scanner; class Account{ private int id; private String name; private String mima; private int time; private double remanent; public Account(String name,String mima,int time,double remanent,int id) { this.setId(id); this.setName(name); this.setMima(mima); this.setTime(time); this.setRemanent(remanent); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMima() { return mima; } public void setMima(String mima) { this.mima = mima; } public int getTime() { return time; } public void setTime(int time) { this.time = time; } public double getRemanent() { return remanent; } public void setRemanent(double remanent) { this.remanent = remanent; } public void Putout(){ System.out.println("1.取款 2.存款"); System.out.print("请选择您的交易类型:"); Scanner input=new Scanner(System.in); int count=input.nextInt(); if(count==1) { System.out.println("当前余额:"+getRemanent()+"元"); System.out.print("请输入取款金额:"); //scanner input=new Scanner(System.in); double money=input.nextInt(); if(getRemanent()-money>=0) { setRemanent(getRemanent()-money); System.out.println("操作成功!"); System.out.println("请取款"); } else { System.out.println("余额不足,请充值"); } } if(count==2) { System.out.println("当前余额:"+getRemanent()+"元"); System.out.print("请输入存款金额:"); double money1=input.nextInt(); setRemanent(getRemanent()+money1); System.out.println("充值成功!"); System.out.println("当前余额:"+getRemanent()+"元"); } } public void Changmima() { System.out.print("输入密码:"); Scanner input=new Scanner(System.in); String mima=input.nextLine(); if(mima.equals(getMima())) { System.out.println("设置新密码:"); String mima1=input.nextLine(); System.out.println("请确认您的密码:"); String mima2=input.nextLine(); if(mima1.equals(mima2)) { setMima(mima1); System.out.println("密码设置成功为:"+getMima()); } else { System.out.println("密码错误,请重新输入"); System.out.println("请选择您的交易类型:"); } } else { System.out.println("密码错误,请重新输入"); System.out.println("请选择您的交易类型:"); } } public void Lookmessage() { System.out.print("输入密码:"); Scanner input=new Scanner(System.in); String mima=input.nextLine(); if(mima.equals(getMima())) { System.out.print("请输入卡号:"); int khao=input.nextInt(); if(khao==getId()) { System.out.println("标识:"+getId()); System.out.println("姓名:"+getName()); System.out.println("开户日期:"+getTime()); System.out.println("余额:"+getRemanent()); } else { System.out.println("卡号错误,请重新输入"); } } else { System.out.println("密码错误,请重新输入"); } } } public class bank { public static void main(String[] args) { // TODO Auto-generated method stub Account str; str=new Account("雷思骞","123456",20190920,122,12345678); int a=0; while(a!=5) { System.out.println("1.存取款"); System.out.println("2.修改密码"); System.out.println("3.查询信息"); System.out.println("4.退出程序"); System.out.print("请选择您的交易类型:"); Scanner input=new Scanner(System.in); int scanf=input.nextInt(); if(scanf==1) { str.Putout(); } if(scanf==2) { str.Changmima(); } if(scanf==3) { str.Lookmessage(); } if(scanf==4) { System.out.println("请取卡,谢谢您的使用"); break; } } } }
学习总结:
String的使用:String类对象的两种实例化方式
String name1 = "Sakura"; //直接赋值方式 String name2 = new String("Sakura"); //利用构造方法实例化
使用"=="和equals比较字符串是否相等
使用"=="比较的是两个对象在内存中的地址是否一致,也就是比较两个对象是否为同一个对象。
使用equals()方法比较的是对象的值是否相等,name1和name2所指对象的值都是"Sakura"所以输出为true。
2,字符串一旦定义便不可变
String name = "Amy"; String name = "Smith"; String name = "Amy" + "Smith";
Java定义了String内容不能被改变。分析堆内存,是可以知道字符串变化为字符串利用改变每一次的改变都会产生垃圾空间,所以不要频繁更改定义好的字符串。
3,字节与字符串
查看API可以看见有许多关于字节的方法。字节使用byte描述,是Java中的基本数据类型之一,使用字节一般主要用于数据的传输或者进行编码转换的时候使用。在String中有许多将字符串转换为字节数组的操作,目的就是为了传输转换。
还学习了包及其一些 import引入的使用