java实验7抽象类和接口

java实验7抽象类和接口

ID:33876971

大小:56.48 KB

页数:5页

时间:2019-03-01

java实验7抽象类和接口_第1页
java实验7抽象类和接口_第2页
java实验7抽象类和接口_第3页
java实验7抽象类和接口_第4页
java实验7抽象类和接口_第5页
资源描述:

《java实验7抽象类和接口》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验6抽象类和接口一、实验目的:1、学习掌握抽象类的概念和使用方法。2、学习掌握接口的概念和定义接口的方法。3、学习使用Cloneable接口和clone方法进行对象内容的复制。4、理解浅复制和深复制的概念,掌握覆盖clone方法进行对象内容深复制的技术。二、实骑任务:1、学习掌握抽象类的概念和使用方法。程序要求:(1)首先创建一个类家族,其中抽象类几何图形类GeometricObject为父类,圆类Circle和矩形类Rectangle为子类。几何图形类GeometricObject屮定义保护型字符串变量color,表示图形的颜色;该类要具备构造方法和两个抽象方法findArea和fin

2、dPerimeter,抽象方法findArea求图形面积,抽象方法findPerimeter求图形周长。(2)Circle类和Rectangle类是GeometricObject类的了类,其中应实现父类的抽象方法。(3)程序主方法中创建两个几何对彖,一个圆和一个矩形,并用GeometricObject类的引用变量引用它们,调用抽象方法。2、学习接口的概念和利用接口实现多态的方法。程序要求如下:(1)首先创建圆类Circle和圆柱体类Cylinder,其中Circle类是父类,Cylinder类是子类;(2)创建接口Comparable,其屮包含一个抽象方法compareTo,用来比较对象的

3、大小。抽象方法compareTo的形式如下:publicintcompareTo(Objecto);(3)创建类ComparableCircle,该类为Circle类的了类,并实现Comparable接口。(4)创建类ComparableCylinder,该类为Cylinder类的子类,并实现Comparable接口。(5)创建通用类Max,其中包含通用方法max,只要类实现了Comparable接口,就可以使用max方法返回两个对象中较大的一个。Max方法的方法名称为:publicstaticComparablemax(Comparableol,Comparableo2)(6)程序的主方

4、法中分别创建两个ComparableCircle类对象和两个ComparableCylinder类对象,并分别以它们为参数调用max方法,返回两个对象中面积较大的一个。3、选做题:进一步深入学习多态特性以及利用Cloneable接口和clone方法实现对象内容的拷贝,并学习消除浅拷贝(浅复制)的方法。程序要求如下:(1)创建Circle类,表示圆;(2)创建Name类,表示人名,其中包含三个String类型的数据成员:firstName,middlName和lastNameo(1)创建CloneableCircle类,CloneableCircle类是Circle类的子类,并实现了Clon

5、eable接口。要求CloneableCircle类中有一个Name类型的数据成员creator,代表圆对象的创建者姓名。(2)在CloneableCircle类中实现clone方法,以实现两个CloneableCircle类对象内容的克隆。要求实现对象内容深拷贝(深复制)。(3)为了实现CloneableCircle类对彖的深拷贝,Name类也应该实现Cloneable接口,并实现clone方法。(4)程序的主方法中使用clone方法完成两个CloneableCircle类对象的深拷贝。三、实验步骤:1•参考代码:abstractclassGeometricObject{protecte

6、dStringcolor;protecteddoubleweight;protectedGeometricObject(Stringcolor,doubleweight){this.color=color;this.weight=weight;}publicabstractdoublefindArea();publicabstractdoublefindPerimeter();}classCircleextendsGeometricObject{protecteddoubleradius;publicCircle(doubleradius){super(”white”,1.0);this.

7、radius=radius;1publicdoublefindArea(){returnradius*radius*Math.PI;}publicdoublefindPerimeter(){return2*radius*Math.PI;}}classRectangleextendsGeometricObject{protecteddoublewidth;protecteddoubleheight;publicRectan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。