欢迎来到天天文库
浏览记录
ID:33876971
大小:56.48 KB
页数:5页
时间:2019-03-01
《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
此文档下载收益归作者所有