JAVA实验_题目8

  • 格式:doc
  • 大小:85.00 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章类和对象的扩展

【实验目的】

(1) 类的继承

a. 掌握父类及子类的关系及创建方法

b. 掌握上转型对象的使用方法

c. 掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法

(2) 多态与接口

a. 掌握抽象类与抽象方法的概念

b. 掌握多态的实现原理及方法

c. 了解成员变量的隐藏

d. 掌握接口的设计方法

【实验范例】

例1:(继承)

(1)编写一个圆类Circle,该类拥有:

①一个成员变量

Radius(私有,浮点型);// 存放圆的半径;

②两个构造方法

Circle( ) // 将半径设为0

Circle(double r )//创建Circle对象时将半径初始化为r

③三个成员方法double getArea( ) //获取圆的面积

double getPerimeter( ) //获取圆的周长

void show( ) //将圆的半径、周长、面积输出到屏幕

(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:

①一个成员变量

double hight(私有,浮点型);// 圆柱体的高;

②构造方法

Cylinder (double r, double h ) //创建Circle对象时将半径初始化为r

③成员方法

double getVolume( ) //获取圆柱体的体积

void showVolume( ) //将圆柱体的体积输出到屏幕

编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。

程序代码:

class Circle { // 定义父类--园类

private double radius; // 成员变量--园半径

Circle() { // 构造方法

radius = 0.0;

}

Circle(double r) { // 构造方法

radius = r;

}

double getPerimeter() { // 成员方法--求园周长

return 2 * Math.PI * radius;

}

double getArea() { // 成员方法--求园面积

return Math.PI * radius * radius;

}

void disp() { // 成员方法--显示园半径、周长、面积

System.out.println("圆半径=" + radius);

System.out.println("圆周长=" + getPerimeter());

System.out.println("圆面积=" + getArea());

}

}

class Cylinder extends Circle { // 定义子类--圆柱类

private double hight; // 成员变量--园柱高

Cylinder(double r, double h) { // 构造方法

super(r);

hight = h;

}

public double getVol() { // 成员方法--求园柱体积

return getArea() * hight;

}

public void dispVol() { // 成员方法--显示园柱体积

System.out.println("圆柱体积=" + getVol());

}

}

public class Prog1 { // 定义主类

public static void main(String[] args) { // 主程入口

Circle Ci = new Circle(10.0); // 生成园类实例

Ci.disp(); // 调用园类的方法

Cylinder Cyl = new Cylinder(5.0, 10.0); // 生成圆柱类实例

Cyl.disp(); // 调用父类方法

Cyl.dispVol(); // 调用子类方法

}

}

例2:(重载)

设计一个汽车类Multiplication,在其中定义三个同名的mul方法:第一个方法是计算两个整数的积;第二个方法是计算两个浮点数的积;第三个方法是计算三个浮点数的积。

程序代码:

class Multiplication {

public void mul(int a, int b) {

int m = a * b;

System.out.println(a + "*" + b + "=" + m);

}

public void mul(double a, double b) {

float m = (float) (a * b);

System.out.println(a + "*" + b + "=" + m);

}

public void mul(double a, double b, double c) {

double m = a * b * c;

System.out.println(a + "*" + b + "*" + c + "=" + m);

}

}

public class Prog1 {

public static void main(String[] args) {

Multiplication test = new Multiplication();

test.mul(3, 4);

test.mul(2.3, 3);

test.mul(3, 4, 5);

}

}

例3:(接口与多态)

(1) 定义一个接口CanFly,描述会飞的方法public void fly();

(2) 分别定义类飞机和鸟,实现CanFly接口。

(3) 定义一个测试类,测试飞机和鸟。测试类中定义一个makeFly()方法,让会飞的事物飞起来。

(4) 然后在main方法中创建飞机对象和鸟对象,并在main方法中调用makeFly()方法,让飞机和鸟起飞。

程序代码:

interface CanFly {

public void fly();

}

class AirPlane implements CanFly {

public void fly() {

System.out.println("airplane is flying");

}

}

class Bird implements CanFly {

public void fly() {

System.out.println("Bird is flying");

}

}