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

北京信息科技大学Java语言程序设计-抽象类和接口

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

实验4 抽象类和接口 【实验宗旨】

每天做一点编程练习。 【实验目的】

1、学习和掌握Java抽象类的定义和使用。 2、学习和掌握Java接口的定义和使用。 3、进一步学习和掌握通用程序设计方法。 【实验步骤(解题过程)】 参见实验2。 【实验内容】 1、(CompareableCirlce类)创建名为CompareableCircle类,它扩展Circle类并实现Compareable接口。画出UML图,实现compareTo方法,使其可以根据面积比较两个圆。编写一个测试程序求出CompareableCircle对象的两个实例中的较大者。 说明:⑴来源编程练习(P399))。⑵接口参见小节(P378)。⑶Circle类的实现,参见程序清单(P303)。 【实验预习】 1. 问题描述:该题描述的是创建一个CompareableCircle类来实现两个圆的比较。 2. 创建两个CompareableCircle类的实例,利用Comparable接口,并调用

ComparableMax方法实现。 【附程序代码】

@SuppressWarnings(\ public class testCompareableCircle{ etArea()) return 1; else if(getArea()<((CompareableCircle)o).getArea()) return -1; else return 0; } }

public class Circle extends GeometricObject1 { private double radius;

public Circle() { }

public Circle(double radius) { = radius; }

CompareableCircle<>~CompareableCircle(radius: double)+compareTo(o: Object): intetArea())

return 1;

else if () < ((Circle1)o).getArea()) return -1; else

return 0; }

etArea(); } }

【UML图】

【实验过程与运行结果】

在实验过程中,不会编写equals的覆盖方法。

解决方法:应该是写成; public boolean equals(Object o) { return () == ((Circle1)o).getArea();} 3、(求几何对象的面积之和)编写一个方法,求数组中所有几何对象的面积之和。方法签名如下:

public static double sumArea(GeometricObject[] a)

编写测试程序,创建4个对象(两个圆形和两个矩形)的数组,然后使用sumArea方法求它们的总面积。

说明:⑴来源:编程练习(P400);⑵分别实现Geometric Object类(程序清单14-1(P372))、Rectangle类(程序清单11-3(P305))和Circle类(程序清单11-2(P303));⑶建立GeometricObject类层次结构(图14-2(P372))。 【附程序代码】 public class Area{

public static void main(String[] args) { new Area(); }

public Area() {

GeometricObject[] a = {new Circle(5), new Circle(6), new Rectangle(2, 3), new Rectangle(2, 3)};

\ }

public static double sumArea(GeometricObject[] a) { double sum = 0;

for (int i = 0; i < ; i++) sum += a[i].getArea();

return sum; }

相同点

都不能被直接实例化,都可以通过继承实现其抽象方法。 都是面向抽象编程的技术基础,实现了诸多的设计模式。 不同点

接口支持多继承;抽象类不能实现多继承。

接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。

接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。 接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。

接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。

接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。

精心搜集整理,只为你的需要

北京信息科技大学Java语言程序设计-抽象类和接口

实验4抽象类和接口【实验宗旨】每天做一点编程练习。【实验目的】1、学习和掌握Java抽象类的定义和使用。2、学习和掌握Java接口的定义和使用。3、进一步学习和掌握通用程序设计方法。【实验步骤(解题过程)】参见实验2。【实验内容】1、(CompareableCirlce类)创建名为Compa
推荐度:
点击下载文档文档为doc格式
2y7x98u73j76vac3ljxx41z4g1sgjh0186p
领取福利

微信扫码领取福利

微信扫码分享