版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验4 抽象类和接口 【实验宗旨】 每天做一点编程练习。 【实验目的】 1、学习和掌握Java抽象类的定义和使用。 2、学习和掌握Java接口的定义和使用。 3、进一步学习和掌握通用程序设计方法。 【实验步骤(解题过程)】 参见实验2。 【实验内容】 1、(CompareableCirlce类)创建名为CompareableCircle类,它扩展Circle类并实现Compareable接口。画出UML图,实现compareTo方法,使其可以根据面积比较两个圆。编写一个测试程序求出CompareableCircle对象的两个实例中的较大者。 说明:来源编程练习14.2(P399)。java.l
2、ang.Compareable接口参见14.5小节(P378)。Circle类的实现,参见程序清单11.2(P303)。【实验预习】1. 问题描述:该题描述的是创建一个CompareableCircle类来实现两个圆的比较。2. 创建两个CompareableCircle类的实例,利用Comparable接口,并调用ComparableMax方法实现。【附程序代码】SuppressWarnings(unchecked)public class testCompareableCircle/主方法public static void main(Stringargs)CompareableCircl
3、e C1=new CompareableCircle(10);CompareableCircle C2=new CompareableCircle(3);System.out.println(The maxnium Circle is +ComparableMax(C1,C2)+的圆);/比较两个圆的大小public static Comparable ComparableMax(Comparable C1,Comparable C2)if(CpareTo(C2)0)return C1;else return C2;public class CompareableCircle extends
4、Circle implements Comparable/建立个指定半径的圆CompareableCircle(double radius)super(radius);/Comparable接口的方法public int compareTo(Object o)if(getArea()(CompareableCircle)o).getArea()return 1;else if(getArea() (Circle1)o).getArea() return 1; else if (this.getArea() (Circle1)o).getArea() return -1; else return
5、 0; /覆盖Object中的equals方法 public boolean equals(Object o) return this.getArea() = (Circle1)o).getArea(); 【UML图】【实验过程与运行结果】 在实验过程中,不会编写equals的覆盖方法。解决方法:应该是写成; public boolean equals(Object o) return this.getArea() = (Circle1)o).getArea();3、(求几何对象的面积之和)编写一个方法,求数组中所有几何对象的面积之和。方法签名如下: public static double
6、sumArea(GeometricObject a) 编写测试程序,创建4个对象(两个圆形和两个矩形)的数组,然后使用sumArea方法求它们的总面积。 说明:来源:编程练习14.8(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
7、 Area() GeometricObject a = new Circle(5), new Circle(6), new Rectangle(2, 3), new Rectangle(2, 3); System.out.println(The total area is + sumArea(a); public static double sumArea(GeometricObject a) double sum = 0; for (int i = 0; i a.length; i+) sum += ai.getArea(); return sum; /矩形类class Rectangle
8、extends GeometricObject private double width; private double height; /创建一个指定长和宽的矩形 public Rectangle(double width, double height) this.width = width; this.height = height; /返回矩形的宽 public double getWidth() return width; /设定矩形的宽 public void setWidth(double width) this.width = width; /返回举矩形的高 public dou
9、ble getHeight() return height; /设定矩形的高 public void setHeight(double height) this.height = height; /返回矩形面积 public double getArea() return width*height; /求矩形的周长 public double getPerimeter() return 2*(width + height); /覆盖equals方法 public boolean equals(Rectangle rectangle) return (width = rectangle.getW
10、idth() & (height = rectangle.getHeight(); /返回基本信息 public String toString() return Rectangle width = + width + and height = + height; 【运行结果】【思考题】 1、练习1和练习2中,使用了不同的方法建立了可比较的Circle类。结合编程实现,说说你对不同设计方案的想法和体会。利用不同的设计方案可易于解决不同的实际问题。2、练习3中,如果将方法sumArea的参数数组定义为Cirlce,可以实现相应的功能吗?定义为Object呢?为什么?结合本题,说说你对通用程序设计的理解。前者不可以,后者可以。编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。3、说说抽象类和接口的相同和不同之处。.相同点 都不能被直接实例化,都可以通过继承实现其抽象方法。 都是面向抽象编程的技术基础,实现了诸多的设计模式。不同点 接口支持多继承;抽象类不能实现多继承。 接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。 接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026台州市生态环境保护行政执法队编外招聘1人考试参考试题及答案解析
- 2026西北工业大学材料学院辐射探测材料与器件团队招聘1人(陕西)考试备考题库及答案解析
- 2026福建泉州市石狮商业运营发展有限公司招聘2人考试备考题库及答案解析
- 2026年贵州应用技术职业学院单招综合素质笔试备考题库带答案解析
- 2026湖南长沙市麓山国际洞阳实验学校公开招聘编外合同制教师考试备考题库及答案解析
- 2026新疆博尔塔拉州博乐市阳光聚合人力资源服务有限责任公司招聘4人考试参考题库及答案解析
- 2026四川九州电子科技股份有限公司招聘NPI岗测试成绩公示考试备考题库及答案解析
- 2025年河北邢台市中心血站第二批公开招聘编外工作人员1名考试参考题库及答案解析
- 2026北京中关村第三小学双新分校招聘考试备考题库及答案解析
- 2026年四川建筑职业技术学院单招职业技能考试参考题库附答案详解
- 上海市嘉定区2026届初三一模英语试题(含答案)
- DB34T 5346-2025水利工程建设安全生产风险管控六项机制规范
- 2026年新媒体运营推广合同协议
- 2025-2026学年人教版九年级上册历史期末试卷(含答案和解析)
- 《小学语文六年级上册第三单元复习》课件
- 重症医学科ICU知情同意书电子病历
- 小区配电室用电安全培训课件
- 杭州余杭水务有限公司2025年度公开招聘备考题库附答案详解
- 鹿邑县2025年事业单位引进高层次人才备考题库及答案详解(新)
- 2025云南昆明巫家坝城市发展建设有限公司社会招聘14人笔试历年难易错考点试卷带答案解析
- 医院科室文化建设与礼仪
评论
0/150
提交评论