第二次实验报告及学习总结

1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

(1) 使用构造函数完成各属性的初始赋值

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

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

实验代码:

   package xingqisan;

   public class Rectangle {	                   //定义Rectangle类
		private double width;                       
		private double height;
		private String color;                //定义属性
		public double getHeight() {
			return height;                  //取得height属性
		}
		public void setHeight(double height) {
			this.height = height;          //设置height属性下同
		}
		public double getWidth() {
			return width;
		}
		public void setWidth(double width) {
			this.width = width;
		}
		public String getColor() {
			return color;
		}
		public void setColor(String color) {
			this.color = color;
		}
		
		public void getArea() {
			double area=0;
			area=this.height*this.width;
			System.out.println("面积为"+area);
		}
		public void getLength() {
			double length=0;
			length=(this.height+this.width)*2;
			System.out.println("周长为"+length);
		}
		public static void main(String args[]) {
			Rectangle rec=new Rectangle();
			rec.setWidth(3);
			rec.setHeight(4);
			rec.setColor("黄色");
			rec.getArea();
			rec.getLength();
			System.out.println("长:"+rec.getWidth()+",高:"+rec.getHeight()+",颜色:"+rec.getColor());
		}
   }

实验结果截图:

实验所遇问题:

1.首先代码太过繁琐,应该有比这简单很多的代码,但是现还无法实现
2.还不太理解this关键字的应用,这里面只是根据书上的应用来。
3.输出问题,加号和逗号的位置没有注意,所以一直显示程序错误。
4.对set和get的理解问题,对其理解不是很好,还得通过视频多加学习。
5.对于最后要新创建一个类不懂。

银行的账户

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

实验代码:

   package xingqisan;
   import java.util.Scanner; 

   public class yinhang {    //定义初始参数 
	  Scanner sc = new Scanner(System.in);
      private String characteristic="qwertyuiop1";
      private String name;
      private String date;
      private double meony=0;
      private String word;
      public String getWord() {   //设置属性
    		return word;
    	}
    	public void setWord(String word) {   //取得属性(下同)
    		this.word = word;
    	}
	public String getCharacteristic() {
		return characteristic;
	}
	public void setCharacteristic(String characteristic) {
		this.characteristic = characteristic;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDate() {
		return date;
	}
	public void setDate(String date) {
		this.date = date;
	}
	public double getMeony() {
		return meony;
	}
	public void setMeony(double meony) {
		this.meony = meony;
	}
	public void land() {   //登陆界面
		System.out.println("请选择操作:0.开户,1.查询账户信息,2.存款,3.取款,4.更改密码,5.退出");
		int a = sc.nextInt();
		switch(a) {  //用switch进行选择操作
		case(0):     //每个选项构建该选项的方法
			newacounnt(); 
		    break;
		case(1):
			acounnt();  
		    break;
		case(2):
		    get();
		    break;
		case(3):
			put();
		    break;
		case(4):
		    password();
		    break;
		case(5):
		    setout();
		    break;
		}
		
	}
public void newacounnt() {    //开户
	System.out.println("请输入用户名");
	Scanner sc = new Scanner(System.in);
	String a = sc.nextLine();
	setName(a);
	System.out.println("请设置密码");
	Scanner sc1 = new Scanner(System.in);
	String a1 = sc.nextLine();
	word=a1;
	System.out.println("请输入日期");
	Scanner sc11 = new Scanner(System.in);
	String a11 = sc1.nextLine();
	date=a11;
	land();
}
public void acounnt() {      //输出账户信息
	System.out.println("标识符:"+characteristic+"\n用户名"+name+"\n开户日期"+date+"\n余额"+meony);
	land();
}
public void get() {          //存款
	System.out.println("请输入存款数额:");
	int a = sc.nextInt();
    meony=meony+a;
    System.out.println("当前余额为:"+meony);
    land();
}
public void put() {         //取款
	System.out.println("请输入取款数额:");
	int a = sc.nextInt();
    if(a>meony) {
    	System.out.println("余额不足!");  	
    }
    else {      
    	meony=meony-a;
    	System.out.println("当前余额为:"+meony);
    }
    land();
}
public void password() {   //修改密码
	System.out.println("请输入新密码:");
	Scanner sc = new Scanner(System.in);
	String a = sc.nextLine();
	word=a;
    System.out.println("新密码为:"+word);
    land();
}
public void setout() {      //退出系统
	System.out.println(0);
}
public static void main(String args[]) {
	yinhang a=new yinhang();
	a.land();
}
}

实验结果截图:

实验所遇问题:

1.在下面定义的方法输入中,有多个输入的没有加上相应的new。
2.方法的定义较为简单,但在主函数中引用上面定义的方法时不知道怎么引用,后查询只需要新建立一个对象才能实现引用。
3.不知道如何将底下的方法与登陆land联系起来,解决:在每个方法后加入land()。

总结:

这周的作业看起来比较复杂但写起来还是很容易,主要用到的方法就是面向对象编程。另外感觉用java写代码比c语言要方便许多。

posted @ 2019-09-18 12:30  风靡心落  阅读(341)  评论(1编辑  收藏  举报