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+"
用户名"+name+"
开户日期"+date+"
余额"+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语言要方便许多。