- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学习目标: 掌握Java接口的使用 理解接口与抽象类的异同 了解Java包的使用 掌握Java的访问控制修饰符的使用 了解Java API 任务一 计算各种形状的面积与周长 一、任务描述 在单元四的最后一个任务中,我们建立了形状抽象类,并从中派生出矩形与圆形的子类,实现了不同形状的面积计算功能。本任务要求进一步扩展原有程序,在计算各种形状面积的基础上,增加周长的计算功能。而且,希望程序具备良好的可读写和扩展性,例如可以进一步增加新的形状或者新的功能。 1.改写抽象类 Shape类可以定义为以下形式 abstract class Shape{ protected String name; Shape(String n){name=n;} abstract double area();//计算面积的抽象方法 abstract double perimeter();//计算周长的抽象方法 } 2.增加计算周长的接口 (1).声明接口 修改父类抽象类的做法可以实现本任务要求的功能,然而却不够灵活。每当要增加一个新的功能,我们都得修改父类抽象类,增加新的抽象方法,并在子类中给出具体实现。而子类一旦继承了抽象类,就必须实现这个方法,而不能选择性的继承。 在本任务中,将使用更灵活的“接口”方式,来实现新增的计算周长的功能。 编写代码,保存为“Shape.java”。 (2).测试接口 编写主类及main()方法,测试以上接口的作用,程序保存为“ShapeCalDemo.java”。 程序5.2 ShapeCalDemo: public class ShapeCalDemo{ public static void main(String[] args){ Rect R=new Rect(10,20); Circle C=new Circle(15); System.out.println(R.name+的面积为+R.area()+,的周长为+R.perimeter()); System.out.println(C.name+的面积为+C.area()+,的周长为+C.perimeter()); } } 3.更灵活的使用接口 (1).全面改写程序 程序5.1中,我们在原有程序的基础上,增加接口,实现新的功能。事实上,我们可以使用接口,全面的改写原来的程序,使其结构更加清晰,也更容易扩展。 主要的思路是将所有的功能都用接口来实现,而父类抽象类Shape仅保留一个名称属性。在子类Rect和Circle中,通过实现接口来实现具体的功能。 全面改写的程序保存为“ShapeCalTest.java”。 (2).扩展功能 若任务进一步要求计算正方形的周长和面积,我们只需新增一些简单的代码即可实现。继续派生出子类Square正方形类。而正方形是矩形的特例,显然,从矩形类Rect继承比从抽象类Shape继承更加简单。 Square类的声明如下。正方形无论是面积还是周长的计算,都可以套用矩形的方法。因此,不必重写三个实现功能的方法。 class Square extends Rect { Square(){ this(0); } Square(double a){ super(a,a); name=正方形; } } 三、相关知识 1.接口的使用 接口的定义使用interface关键字,通用格式为 interface 接口名{ 接口体 } 接口名通常以able或ible结尾,表明接口能完成一定的行为。 接口中只能定义常量和抽象方法。常量默认为final static修饰,无论是否显式的使用修饰符。而方法默认为public abstract,同样无论是否显式的使用修饰符。 【例5.1】接口的声明 interface Computable{ int N=100; int f(int x,int y); public abstract void g(); } 代码声明了名为Computable的接口,其中N为常量,尽管不使用final static修饰符。方法f()和g()同样均为公有的抽象方法,无论其是否使用相应的修饰符。 2).实现接口 类的声明中用implements子句来表示一个类实现了某个接口。在类体中,接口中定义的常量可以直接使用;而所有的抽象方法都必须给出具体的实现,且必须使用public修饰。 虽然一个类只能继承一个父类,却可以实现多个接口,只需在implements子句中用逗号分隔。 实现接口的通用格式为: class 类名 implements 接口名1,接口名2?… 【例5.2】接口的实现 class Test implements Computable{ public
您可能关注的文档
- Java 2 —面向对象程序设计 Chapter 1新.ppt
- Java 2 —面向对象程序设计 Chapter 5新.ppt
- Java 2 —面向对象程序设计 Chapter 7新.ppt
- Java 2 —面向对象程序设计 Chapter 8新.ppt
- Java 2 —面向对象程序设计 Chapter 10新.ppt
- Java 2 —面向对象程序设计 Chapter 11新.ppt
- Java 2 —面向对象程序设计 Chapter 14新.ppt
- Java 2 —面向对象程序设计 Chapter 15新.ppt
- Java 2 —面向对象程序设计 Chapter 16新.ppt
- Java 2 —面向对象程序设计 Chapter 19新.ppt
- Java程序设计 韦鹏程 石熙 肖丽 单元7 异常处理新.ppt
- Java程序设计 韦鹏程 石熙 肖丽 单元10 文件与输入输出新.ppt
- Java程序设计 韦鹏程 石熙 肖丽 单元11 线程新.ppt
- Java程序设计 韦鹏程 石熙 肖丽 单元12 网络编程新.ppt
- Java程序设计(第二版) 杨学全 第1章新.ppt
- Java程序设计(第二版) 杨学全 第8章新.ppt
- Java程序设计(第二版) 杨学全 第9章新.ppt
- Java程序设计(第二版) 杨学全 第10章Java的多线程编程新.ppt
- Java程序设计案例教程 2 第2章 Java语言编程基础知识新.ppt
- Java程序设计案例教程 2 第3章 Java语言的流程控制新.ppt
最近下载
- 2025年护理人员N1进阶N2考试试题及答案 .pdf VIP
- DB21T1342-2021 建筑工程文件编制归档规程.pdf
- Unit-1-Discovering-Useful-Structures-超好用的公开课获奖课件-(.pptx VIP
- 专业技术职务任职资格评审表.doc VIP
- 医疗操作规程.docx VIP
- 湖北省专业技术职务任职资格评审表.docx
- 钒酸铋光催化剂的制备及改性.pdf VIP
- 城市轨道交通列车牵引与制动系统(配实训工单) 实训手册(带答案).docx VIP
- 吊装施工专业技术方案(含计算).doc VIP
- 城市轨道交通车辆维护与检修中职全套完整教学课件.pptx
文档评论(0)