第8章--抽象类与接口.ppt_第1页
第8章--抽象类与接口.ppt_第2页
第8章--抽象类与接口.ppt_第3页
第8章--抽象类与接口.ppt_第4页
第8章--抽象类与接口.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8.1.1抽象类的定义,抽象类名成员变量;方法()/通用方法抽象方法();/抽象方法可以包括抽象类中的一般方法和抽象方法。抽象类代表抽象概念,不能作为对象实例化。8.1.2抽象类的应用,例8-1定义了一个表示“形状”的抽象类,它包括一个计算形状面积的抽象方法。继承抽象类来定义三角形、矩形和圆形。创建一个三角形、一个矩形和一个圆形,并将它们存储在一个数组中。访问数组元素以输出各种图形的区域。抽象类Shape /定义了抽象类抽象公共双区域();/抽象方法,类三角形扩展了Shape /定义三角形私有双a,b,c;公共三角形(双a,双b,双c)。this.b=bc=c。公共双人间()双人间p=(a b

2、 c)/2;返回Math . sqrt(p *(p-a)*(p-b)*(p-c);三角形,定义矩形,类矩形扩展形状/定义矩形专用双宽,双高;公共矩形(双j,双k)宽度=j;高度=k;公共双面积()返回宽度*高度;定义一个圆,类圆扩展形状/定义一个圆私有双r;公共圈(双r)this . r=r;公共双区()返回3.14 * r * r,公共类测试公共静态无效主(字符串参数)形状s=新形状3;s0=新三角形(25,41,50);s1=新矩形(15,20);s2=新圆(47);for(int k=0;k .长度;k)系统输出打印(sk . area();8.2.1接口定义,公共接口名称扩展父接口名称

3、列表公共静态最终域类型域名=常数值;公共抽象返回值方法名(参数列表)抛出异常列表;声明接口可以给访问控制器;一个接口也可以继承多个父接口,用逗号分隔。系统默认界面中所有属性的修改都是公共静态的;系统默认界面中所有方法的修改都是公共抽象的。接口定义示例,接口可复制对象副本();8.2.2接口实现、类书实现可复制字符串book _ name/标题字符串图书id;/ISBN公共图书(字符串名称,字符串id)图书_名称=名称;图书id=id公共对象副本()返回新图书(图书名称,图书标识);是否可以是图书类型,实现8.2.2接口(续),公共字符串toString()返回图书标题:图书_名称,图书编号=图

4、书_ id公共静态无效主(字符串参数)书x=新书(Java编程,ISBN 8359012);system . out . println(x);system . out . println(x . copy();书y=(书)x .副本();system . out . println(y);对于接口的实现,注意以下问题,一个类可以实现多个接口。用逗号分隔接口;如果实现接口的类不是抽象类,则指定接口的所有抽象方法都必须在类的定义部分实现;换句话说,实现接口的类必须用具体方法覆盖接口中定义的抽象方法;默认情况下,接口的抽象方法的访问限定符是公共的,在实现它时,应该在方法头中由公共显式修改。,模糊问

5、题,界面Frob浮动v=2.0f/接口定义类父int v=3;/父类定义类测试扩展父实现frob公共静态void main(字符串参数)新测试()。printv();无效打印(系统)打印(超级打印)/2;8.3嵌入类,公共类外部一个私有int x=3;私有int y=4;公共空间外部方法()内部方法=新内部方法();ino . InnerMethod();公共类InnerOne /嵌入类private int z=5;int x=6;public void inner method()system . out . println(y为y);System.out.println(z是z);sys

6、tem . out . println(x=x);system . out . println(this . x=this . x);system . out . println(Outrone . this . x=Outrone . this . x);嵌入式类可以访问外部类的成员。例8-3是一个简单的例子。为了解释,编译一个嵌入类生成的字节码文件名是:OuterOne $ InnerOne.class嵌入类可以访问外部类的成员。嵌入式类可以用公共的、受保护的和私有的访问控制器来修饰,嵌入式类的对象可以在主方法中间接创建。在主方法中,要创建嵌入类的对象,必须首先创建外部类对象,然后创建外部

7、类对象。内部1=新的外部1()。新的内部版本();I . InnerMethod();例8-4静态嵌入类例,公共类外两个私有静态int x=3;私有int y=5;公共静态类Innertwo /静态嵌入类公共静态无效方法()系统。out.println (x是x);公共无效方法2(). system . out . println(x为x);/嵌入类公共静态void main(字符串arg)的结尾外部两个.内部两个. method();新外套。Innertwo()。方法中嵌入类,公共类外部两个私有int x=3;public void OutMethod(int m)final int n=x

8、2;类InnerTwo /方法中的嵌入类private int y=5;public void inner method()system . out . println(y为y);System.out.println(n为n);System.out.println(x为x)。/嵌入类结束,只能访问外部方法中的常量(经过最终修改)和方法中的嵌入类inner two in2=new inner two();in2 . InnerMethod();公共静态无效主(字符串参数)外部二=新外部二();我的。外部方法(8);示例8-5匿名嵌入类的使用。接口样本void TestMethod();公共类An

9、onymousInner void OuterMethod()新示例()公共void testMethod()system . out . println(只是测试);test method();/调用嵌入类中定义的方法。-字节码文件是AnonymousInner $ 1.class如果有更多的匿名嵌入类要根据递增的序号来命名,接口将派生出匿名嵌入类,根据嵌入类创建对象,加载问题,并定义接口形状,包括一个方法大小(),它设计了“矩形”、“圆形”、“圆柱”等类来实现形状接口,其大小()方法分别表示矩形面积、圆形面积和圆柱体积的计算。创建三个分别代表“矩形”、“圆形”和“圆柱”的对象,并将它们存储在一个形状类型的数组中,并通过调用size()方法输出数组中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论