实验2 面向对象编程
实验题1 阅读如下程序,完成思考题。
class CCircle { double pi; double radius; double getRadius()
{ return radius; }
void setCircle(double r, double p)
{ pi=p; radius=r; } }
public class Ex2_1
{ public static void main(String args[]) { CCircle cir1=new CCircle(); cir1.setCircle(2.0,3.1416);
System.out.println(\}
[基本要求] 运行程序并观察运行结果。 [思考问题] 试述程序中主要语句的作用。
实验题2 设计一个用来描述汽车的类
Car,使用类的非静态成员变量来
表示汽车的车主姓名name、当前的速率speed: 1. 创建构造函数为三个成员变量赋初值。
2. 使用类的非静态成员方法来表示改车主姓名changeName操作, 并通过该方法显示修改后的车主名称。
3. 使用类的非静态成员方法来表示改变汽车的速率changSpeed操作,并通过该方法显示修改后的车速。
4. 使用类的非静态成员方法来表示停车stop操作,并通过该方法显示停车后的车速。
5. 创建一个Car类的对象,初始状态时,车主名称是自己的名字,speed=0。
6. 分别调用这三个方法,更改车名为朋友的名字,车速为20,停车车速为0,并且得到如下的结果:
实验题3 定义一个类
MyProgram,包含两个属性:一个是private
的整型属性data、一个是private的String类型的属性str,封装这两个属性的四个方法setData()和getData()、setStr( )和getStr();将这两个属性转变为字符串的方法是toStr()。编写程序,使用MyProgram类,实现数据的访问和修改,并调用toStr()方法显示该类的属性。
[基本要求] 编写完整程序。
[思考问题] 试述程序中各个方法的作用。
实验题4
定义一个类实现银行帐户的概念,包括的变量有\帐号\和\存款
余额\,包括的方法有\存款\、\取款\、\查询余额\和”显示帐号”。定义主类,创建帐户类的对象,并完成相应操作。 提示:关键代码如下:
public int getleftmoney(){ return leftmoney; }
public void savemoney(double money){ leftmoney+=money; }
public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else
System.out.println(\只能取:\} …
bankaccount ba=new bankaccount(888123,1000); ba.savemoney(21000);
System.out.println(\存入21000元后余额为:\ba.getmoney(11500);
System.out.println(\元后余额为:\
实验题5 完成课本4.13(102页)jar文件的生成并产生Use类的运
行结果。
实验题6 对象的组合。现有一个Rectangle类,请设计一个柱形类
cuboid。
1. 此类具有两个成员变量,(1)Rectangle类型的成员变量rect(长方体以长方形做底)和(2)height(柱形的高)。 2. 此类应具有构造方法。
3. (1)此类应具有求面积的方法getVolme()。 (2)此类应具有设置和获得底的长度和宽度的方法:
getBottomWidth(), setBottomWidth(), getBottomLength(), setBottomLength()。
Rectangle的代码如下:
public class Rectangle { double width,length; public void setWidth(double w) { if(w > 0) this.width=w; }
public double getWidth(){ return width; }
public void setLength (double h) { if(length > 0) this.length =h; }
public double getLength () {
return length; } }
实验题5 有图形类的父类Shape,参照圆Circle类补充完整正方性
Square和三角形Triangle类,并分析运行结果。
class Shape { void draw() {} void erase() {} }
class Circle extends Shape {
void draw() { System.out.println(\void erase() { System.out.println(\}
class Square extends Shape { void draw() { } void erase() { } }
class Triangle extends Shape { void draw() { } void erase() { } }
public class Shapes {
public static Shape randShape() {
switch((int)(Math.random() * 3)) { default: // To quiet the compiler
case 0: return new Circle();
case 1: return new Square(); case 2: return new Triangle();