实验报告(二)
1.写一个名为Rectangle的类表示矩形。
其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
(1).实验代码:
package 测试;
public class Rectangle {
private double width;
private double height;
private String color;
public double getWidth() {
return width;
}
public void setWidth(double n) {
width=n;
}
public double getHeight() {
return height;
}
public void setHeight(double n) {
height=n;
}
public String getColor() {
return color;
}
public void setColor(String n) {
color=n;
}
public Rectangle(double width,double height,String color) {
this.setWidth(width);
this.setHeight(height);
this.setColor(color);
}
public double getArea() {
return width*height;
}
public double getLength() {
return width*2+height*2;
}
public static void main(String[] args) {
Rectangle rec=new Rectangle(6, 12, "蓝色");
System.out.println("矩形的宽:"+rec.getWidth());
System.out.println("矩形的高:"+rec.getHeight());
System.out.println("矩形的颜色:"+rec.getColor());
System.out.println("矩形的面积:"+rec.getArea());
System.out.println("矩形的周长:"+rec.getLength());
}
}
(2)实验运行结果截图:
(3)实验大致思路:
定义多个函数,用构造函数进行初始赋值,get...(),set...(),用于访问和修改数据,getArea()和getLength()函数分别计算面积和周长.
(4)实验中遇到的问题:
在进行操作的时候有些迷惑,不是很清楚这些函数的意思,在查书还有百度的帮助下,就明白和C语言的函数有很多地方相像,就是语法会有不同,这道题目让我进一步的了解了方法的构筑.
2.银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
(1).实验代码:
package 测试;
import java.util.Date;
import java.util.Scanner;
public class Account {
private String id;
private String name;
private String password;
private Date date;
private double balance;
public String getId() {
return id;
}
public void setId(String n) {
id=n;
}
public String getName() {
return name;
}
public void setName(String n) {
name=n;
}
public Date getDate() {
return date;
}
public void setDate(Date time) {
date=time;
}
public String getPassword() {
return password;
}
public void setPassword(String n) {
password=n;
}
public double getBalance() {
return balance;
}
public void setBalance(double num) {
balance=num;
}
public void cun(double num) {
this.balance=this.balance+num;
}
public void qu(double num) {
this.balance=this.balance-num;
}
public Date date() {
return date;
}
public void changepassword() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入新密码:");
String password=sc.nextLine();
setPassword(password);
}
public Account(String id,String name,String password,double balance) {
this.setId(id);
this.setName(name);
this.date=new Date();
this.setPassword(password);
this.setBalance(balance);
}
public static void main(String[] args) {
int i;
double num;
String n;
Scanner sc=new Scanner(System.in);
Account a=new Account("abc12345678","朱","666666",1000);//基础账户
System.out.println("是否修改密码:1.是,2否(输入数字)");
i=sc.nextInt();
if(i==1) {
a.changepassword();
}
System.out.println("存取钱:1.存钱,2取钱3.不进行存取(输入数字)");
i=sc.nextInt();
if(i==1) {
System.out.println("请输入存入金额: ");
num=sc.nextDouble();
a.cun(num);
}
if(i==2) {
System.out.println("请输入取出金额: ");
num=sc.nextDouble();
a.qu(num);
}
System.out.println("是否查询当前账户:1.是,2否(输入数字)");
i=sc.nextInt();
if(i==1) {
System.out.println("账户标识:"+a.getId());
System.out.println("密码:"+a.getPassword());//用于显示修改密码成功与否
System.out.println("姓名:"+a.getName());
System.out.println("开户日期:"+a.date());
System.out.println("账户余额:"+a.getBalance());
}
}
}
(2)实验运行结果截图:
(3)实验大致思路:
和第一题类似,定义多个get..(),set...()型的函数用于访问和修改数据,并定义修改密码的函数还有存取钱的函数.最后输出各种信息.
(4)实验中遇到的问题:
对于输入时间还是百度出来的使用方法,使用import java.util.Date;放在代码头就可以了,其他的问题就是不熟悉输入语法,还是进行了一波百度才弄清楚输入的模式,java和C语言输入的区别有点大,java要复杂不少.
我现在无法进行所谓的开户的操作,只能在一个结构体里面进行修改,也就是默认是已经进入了银行的系统,可以进行修改密码,存取款的操作,开不同的户我想可能要用到链表,而我现在在java不会这种操作,这道题虽然不需要进行开户,以及用标识和密码来查询账户数据的操作,但是我觉得以后可能会有这种题,所以说我还是学的太浅了
第四周课程总结:
java的学习已经到了第四周了,java感觉还是很陌生,在做题的时候总是要不停的翻书,查资料,还是学的太少,java那些语法的用法还不是很懂,定义不是很清楚,本周重点学习了String类得使用方法,有2种实例化方式,一种直接赋值,一种通过new赋值,还有String比较方法,知道了"=="和equals()的不同,前者对比内存地址,后者对比内容.还有String类得常用操作方法,还有就是String 对象定义之后,那它的值就无法改变了.还学习了对象数组的概念,声明的方法和初始化,不过这次题目没用到.总之在这几周的学习里能感觉到自己的提升,不过java现在要了解的东西太多(书都那么厚一本),现在还处于一种迷迷糊糊的状态,在以后的练习中这种状态应该会缓解,毕竟熟能生巧,用多了,自然就会用了.