Java第四章Java类和对象的高级特征

上传人:pia****nwu 文档编号:244980963 上传时间:2024-10-06 格式:PPT 页数:21 大小:338.47KB
返回 下载 相关 举报
Java第四章Java类和对象的高级特征_第1页
第1页 / 共21页
Java第四章Java类和对象的高级特征_第2页
第2页 / 共21页
Java第四章Java类和对象的高级特征_第3页
第3页 / 共21页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java程序设计,Java类和对象的高级特征,内容,接口,包,接口,接口的概念:接口是一组常量和抽象方法的集合;接口是一个功能规范,一个遵循该规范的类称为实现了该接口,即,“所有实现本接口的class,都应该提供的功能”,java中用接口实现多重继承,定义一个接口,采用关键字interface,实现一个接口,采用关键字implements,定义接口,Java中定义接口的语法如下,定义接口与定义类非常相似,实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类。,public interface 接口名 extends 父接口名列表,/接口体;,/常量域声明,public static final 域类型 域名=常量值;,/抽象方法声明,public abstract 返回值 方法名(参数列表)throw异常列表;,接口的性质,接口中所有成员变量隐含为static和final,因此它们是常量,并且须有初值;,接口不能含非常量数据;,接口中的成员变量和方法均是public的;,接口中的成员方法不能是static的;,接口中的成员方法是abstract的;,接口不能含方法实现;,接口不能用来创建实例;,接口可以继承另一个接口。,实现接口,格式,在类的声明部分,用implements关键字声明该类将要实现哪些接口。,如果实现某接口的类不是抽象类,则在类的定义部分必须实现指定接口的所有抽象方法。否则,该类是抽象类。,一个类在实现某接口的抽象方法时,必须使用完全相同的方法声明,返回值类型也必须相同(即,类去覆盖接口中的抽象方法)。,接口的抽象方法的访问限制符都已指定为public,所以类在实现方法时,必须显式地使用public修饰符。,修饰符 class 类名 extends 父类名,implements,接口名,interface.,/类体,接口示例,示例2:,Animal,.java,Bird.java,Insect.java,public,interface,Comparable,public int compareTo(Object o);,public class Double,implements,Comparable,public int compareTo(Object o),使用接口引用,可以用接口名作为数据类型声明变量,该变量用于保存实现了该接口的类的对象的引用。这样的变量称为接口引用变量。,通过接口引用变量只能调用该接口中声明的方法。,通过接口引用变量可实现多态性。,示例:,Animal,.java,Bird.java,Insect.java,AnimalDemo.java,AnimalDemo2.java,接口中的常量,接口中所有成员变量隐含为static和final,因此它们是常量,并且须有初值;,接口不能含非常量数据;,一个类可以使用以下两种方式使用接口中的常量:,该类实现声明了常量的接口,直接使用常量的名称即可,该类不用实现声明了常量的接口,但在使用接口中的常量时需用:接口名.常量名的方式,示例:ConstImpl.java,接口的继承,一个接口通过关键字extends继承另一个或多个接口,即接口的继承可以是多重继承(P121错)。,当一个类实现继承了其他接口的接口时,必须在类中实现接口继承链中定义的所有方法,否则该类是一个抽象类。(该情况相当于,一个类实现了多个接口),示例:IFExtend.java,接口与抽象类的区别,相同点,均可包含抽象方法;,均不能实例化;,不同点,抽象类中可以包含非抽象方法,接口中必须全是抽象方法;,抽象类可以包含构造方法,接口没有构造方法;,抽象类中可以有成员变量,接口中只有类成员常量;,抽象类的成员可以有四种访问权限,而接口的成员只有public访问权限;,类只能是单重继承,接口可以有多重继承;一个类可以实现多个接口;,抽象类约定的是其子类的相似行为的外观,接口可以约定没有继承关系的多个类之间的相似行为的外观。,内部类,P122,自学,包的概念,包名:p1.p2.pn,对应目录p0p1p2.pn,作用,提供代码维护的便利,提供访问控制的层次,包的定义,格式:在源文件的头部加上,package,包名;,包编程步骤例解(1),设当前目录为myApp,在myApp下建一子目录com在com目录下再创建子目录 myPackage.,将以下程序文件PackageTest.java 建于myPackage下:,package com.myPackage;,class PackageTest,public static void main(String args ),System.out.println(,This my package);,包编程步骤例解(2),在myPackage目录下编译文件,PackageTest.java:,javac PackageTest.java,回到myApp目录执行运行命令:,包的使用,用import语句引入外包类,两种引入方式:,import 包名.类名;(引入一个类),如:import java.applet.Applet;,import 包名.*;(引入包中所有类),如:import java.applet.*;,以下无需再写全名,class MyClass extends Applet ,否则需写为:,class MyClass extends java.applet.Applet ,Java中缺省导入java.lang.*,包与成员的访问限制,一个类可以访问同一包中另一个类的默认修饰符修饰的成员和protected修饰的成员;,一个类可以访问不同包中父类的protected成员;但不能访问不同包中的默认修饰符修饰的成员;,默认修饰符所施加的限制高于protected修饰符。,package Greek;,public class Alpha,protected int iamprotected;,void method(),package Greek;,class Gamma,void accessMethod(),Alpha a=new Alpha();,a.iamprotected=10;/,a.method();/,package Greek;,public class Alpha,protected int iamprotected;,static void method(),package Latin;,import Greek.*;,class Delta extends Alpha,void accessMethod(),iamprotected=10;/,Alpha.method();/,X,Java中的API,通过API手册自学:,java.lang.*,java.util.*,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!