实验报告
班级 计科二班 学号 20188425 姓名 IM
完成时间2019/09/20
评分等级
实验二 Java简单类与对象
实验目的
掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
理解static修饰付对类、类成员变量及类方法的影响。
实验内容
1、写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
实验代码:
package 实验室;
public class Rectangle { //定义矩形类
double width=5,hight=7; // 矩形宽度、高度
String color = "red"; //矩形颜色
double area; //矩形面积
double length; //矩形周长
public Rectangle(double width,double hight,String color){ //矩形类属性初始化
this.setWidth(width); //设置宽度
this.setHight(hight); //设置高度
this.setColor(color); //设置颜色
this.setArea(width,hight); // 设置矩形面积
this.setLength(width,hight); //设置矩形周长
}
public double getWidth() { //用get()修改取得矩形宽度、长度、颜色、面积、周长等
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHight() {
return hight;
}
public void setHight(double hight) {
this.hight = hight;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getArea() {
return area;
}
public void setArea(double width,double hight) {
this.area = width*hight;
}
public double getLength() {
return length;
}
public void setLength(double width,double hight) {
this.length = 2*(width+length);
}
}
public class Rectangle{ //测试以上代码
public static void main(String[] args) {
Rectangle rec = null; //声明对象
Rec = new Rectangle("area","length","color");
System.out.println("面积="+Rec.getArea()+",周长="+Rec.getLength()+",颜色:"+Rec.getColor()); //实例化Rectangle对象,赋值输出
}
}
错误提示:
原因是该矩形类已经被定义使用。(由于才疏学浅,还在找原因ing)
2、银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
实验代码:(还在看书百度思考ing)
本周课程总结:
我学到了什么:
本周我们继续学习面向对象编程,着重学习了“string”类中的常用方法:
String类的实例化:直接赋值和 “new”一个对象赋值(构造方法)。
区别:直接赋值 只开辟一块堆内存空间,并自动保存在对象池中以供下次重复使用;构造方法会开辟两块堆内存空间,其中有一块空间成为垃圾,并不会自动入池,可以通过使用intern()方法手工入池。
EP:学习了“ 包” 的概念及其使用:包的目的在于实现程序的分割保存。
PS:
我学习不足在哪:
对eclipse的部分功能还不熟悉,在新建一个新class,很容易出错导致编译错误,对类的定义没有好好掌握;
代码很多看得懂,但自己来写却难以运行,或者运行错误;(很多时候都找不到原因,tnl)
对于算法还是不能很好的理解和应用,有些算法非常巧妙,就是想不到(还是太gag了)
对于构造法还是不太熟悉;
我学习需改进在哪:
写出简洁易懂的代码;
自己能够独立完成算法的设计;
每天写点代码,写个程序.....。