实验报告
1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
class Rectangle {
private double width,height;
private String color;
public Rectangle(double width,double height,String color){
this.setWidth(width);
this.setHeight(height);
this.setColor(color);
}
public void tell(){
System.out.println("宽:"+width+" "+"高:"+height+" "+"颜色:"+color);
}
public double getWidth(){
return width;
}
public double getHeight(){
return height;
}
public String getColor(){
return color;
}
public void setWidth(double width){
this.width=width;
}
public void setHeight(double height){
this.height=height;
}
public void setColor(String color) {
this.color=color;
}
public void getArea(){
System.out.println("面积为:"+(width*height));
}
public void getLength(){
System.out.println("周长为:"+(width+height)*2);
}
}
public class Test{
public static void main(String[] args){
Rectangle per=new Rectangle(30,60,"yellow");
per.tell();
per.getArea();
per.getLength();
}
}
2.银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
import java.util.Scanner;
class Account {
private String accId;
private String name;
private double money;
String code;
private String date;
public Account(String accId, String name,String date){
this(accId, name, 0,date);
}
private Account(String accId, String name, double money,String date) {
this.accId = accId;
this.name = name;
this.money = money;
this.code="123456";
this.date=date;
}
public void saveMoney(double money) {
if (money <= 0) {
System.out.println("存款金额必须大于0");
}
this.money += money;
System.out.println("存款成功"+"
"+"账户余额:"+money);
}
public double getMoney(double money) {
if (money <= 0) {
System.out.println("取款金额必须大于0");
return 0;
}
if (this.money <= money) {
System.out.println("余额不足,无法取款");
return 0;
}
this.money -= money;
System.out.println("取款成功"+"
"+"账户余额:"+money);
return money;
}
public String alter(String code){
this.code=code;
System.out.println("修改成功");
return code;
}
public double getBalance() {
return this.money;
}
public double getOverdraft() {
return 0;
}
public void tell(){
System.out.println("账户:"+accId+"
"+"姓名:"+name+"
"+"开户日期"+date+"
"+"余额:"+money+"
");
}
public void tell1(){
System.out.println("账户:"+accId);
}
public void tell2(){
System.out.println("姓名:"+name);
}
public void tell3(){
System.out.println("余额:"+money);
}
}
class Test1{
public static void main(String[] args){
System.out.println("请输入开户人姓名");
Scanner m=new Scanner(System.in);
String v=m.next();
System.out.println("请输入开户日期");
Scanner p=new Scanner(System.in);
String g=p.next();
Account per=new Account("c1476351119",v,g);
per.tell();
System.out.println("请输入密码");
Scanner x=new Scanner(System.in);
String chr=x.next();
if(chr.equals(per.code)){
System.out.println("1.取款
2.存款
3.变更密码
4.账户标识
5.姓名
6.当前余额"+"
");
Scanner n=new Scanner(System.in);
int t=n.nextInt();
switch(t){
case 1:
System.out.println("请输入取款金额");
Scanner q=new Scanner(System.in);
double y=q.nextDouble();
per.getMoney(y);
break;
case 2:
System.out.println("请放入存款金额");
Scanner c=new Scanner(System.in);
double s=c.nextDouble();
per.saveMoney(s);
break;
case 3:
Scanner z=new Scanner(System.in);
String b=z.next();
per.alter(b);
break;
case 4:
per.tell1();
break;
case 5:
per.tell2();
break;
case 6:
per.tell3();
break;
}
}
else{
System.out.println("密码错误");
}
}
}
课程总结
本周学习了String类的多种方法,对于我们做问题有很大的帮助,还有如果发现不会的问题要多去看帮助文档,帮助文档上面的解析也是很清楚的,对于Java还是有很多疑问的,上课听了还算听得懂,但是课后还要多练习,不然过几天就会忘记,所以要多练。