好文档 - 专业文书写作范文服务资料分享网站

JAVA实验_题目8

天下 分享 时间: 加入收藏 我要投稿 点赞

第八章类与对象的扩展

【实验目的】 (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) { // 构造方法 ? ?}

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

radius = r;

??return 2 * Math、PI * radius; ?}

?double getArea() { // 成员方法—-求园面积 ??return Math、PI * radius * radius; ?} ? ?} }

class Cylinder extends Circle { // 定义子类-—圆柱类 ?private double hight; // 成员变量--园柱高 ?Cylinder(double r, double h) { // 构造方法 ? ?

super(r); hight = h; }

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

?System、out、println("圆周长=" + getPerimeter()); System、out、println("圆面积=\ + getArea()); ??System、out、println(”圆半径=\ + radius);

?public double getVol() { // 成员方法—-求园柱体积 ??return getArea() * hight; ?}

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

public class Prog1 { // 定义主类

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

?Circle Ci = new Circle(10、0); // 生成园类实例 Ci、disp(); // 调用园类的方法 Cyl、disp(); // 调用父类方法

System、out、println(”圆柱体积=\ + getVol());

??Cylinder Cyl = new Cylinder(5、0, 10、0); // 生成圆柱类实例 ??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; ?} }

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); }

?System、out、println(a + ”*” + b + \*” + c + ”=” + m);

例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() { ?} }

class Prog1 {

?static void makeFly(CanFly obj) { ??obj、fly(); ?}

?public static void main(String[] args) {

?AirPlane ap = new AirPlane(); ??Bird b = new Bird(); ??makeFly(ap);

?System、out、println(\);

JAVA实验_题目8

第八章类与对象的扩展【实验目的】(1)类的继承?a、掌握父类及子类的关系及创建方法b、掌握上转型对象的使用方法?c、掌握子类对象创建过程中与父类构造方法的关系,及super关键字的用法(2)多态与接口a、掌握抽象类与抽象方法的概念b、掌握多态的实现原理及方法?c、了解成员变量的隐藏d、掌握接口的设计方法
推荐度:
点击下载文档文档为doc格式
72fce2sap53x5if1klmb9gaib47veh009m1
领取福利

微信扫码领取福利

微信扫码分享