java课件——第六章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教学公共群:81246901 教学公共邮箱:ldxylmj@
7类与对象
Java中声明接口的语法如下: [public] interface 接口名 [extends 父接口名列表] {
//常量声明 [public] [static] [final] 类型 常量名=值;
//抽象方法声明 [public] [abstract] 返回值 方法名(参数列表) [throw异常列表]; } 定义接口与定义类非常相似,实际上完全可以把接口 理解成为一种特殊的类,接口是由常量和抽象方法 组成的特殊类。
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
4类与对象
包的导入
包中的类必须包含它们的包名才能完全有效,为每 个想用的包写一个长的逗点分离的包路径名是枯 燥的。因为这点,Java包含了import语句来引入 特定的类甚至是整个包。一旦被引入,类可以被 直呼其名的引用。在Java源程序文件中,import 语句紧接着package语句(如果package 语句存 在),它存在于任何类定义之前。 import pkg1[.pkg2].(classname|*);
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
6类与对象
6.2 接口
接口是用来实现类间多重继承的功能的 需要指出的是,接口定义的仅仅是实现某一特定功
能的一组功能的对外接口和规范,而并没有真正 实现这个功能。真正实现在继承这个接口的各个 类中完成
2019/5/20
例:MyPack.AccountBalance.java
访问保护:private、public和protected,见P158 例 p1 p2
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
3类与对象
package 语句的作用是将当前文件中的类打包到指定的的包里。 例如 package a.b;
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
8类与对象
(1)接口中的属性都是用 final修饰的常量 (2)接口中的方法都是用abstract修饰的抽象方法,
在接口中只能给出这些抽象方法的方法名、返回 值和参数列表,而不能定义方法体,也就是说它 们都只有说明没有定义;即仅仅规定了一组信息 交换、传输和处理的“接口”。
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
11类与对象
[public] class classname [extends superclass] [implements interface [,interface...]]
{ // class-body
} 如果一个类实现多个接口,这些接口用逗号分隔。
实现接口的方法必须声明成public。而且,实现 方法的类型必须严格与接口定义中指定的类型相 匹配。
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
1) package语句本身不会自动生成包(文件夹)。 2) 通过package 语句打包之后的类,其名称不再是原来的名称,
而是包名+类名 例如 java a.b.myclass 3)不同包中的类间相互之间的访问要遵循包的访问权限 4)如果类没有用package语句打包,则这样的类被认为存在于一 个默认包里。 5 package语句必须是文件中除注释之外的第一条语句
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
5类与对象
说明: 1)import语句中的“.”用来分隔各个包的层次。 2)只有最后一个“.”之后才可以使用“*”.即不可
以出现类似于 import a.*.*; imoprt *.*;
import ng.*; 例 TestBalance.java
第六章 包和接口
《主要内容》 包的创建 包的导入 接口的定义 接口的实现 接口的使用
6.1 包
类似于C中的函数按照功能分布在各个函数库里, java类库里的类也是按照功能和层次存放到一个 树状结构里的。这个树状结构的基本单位就是文 件夹,即java里所说的包。 package语句定义了一个存储类的名字空间。如果 省略package 语句,类名被输入一个默认的没有 名称的包。 package pkg;
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
9类与对象
ห้องสมุดไป่ตู้
如果一个类要实现接口时,需要注意: (1)在类的声明部分,用implements关键字声明该
类将要实现哪些接口。 (2)如果实现某接口的类不是abstract的抽象类,
则在类的定义部分必须实现指定接口的所有抽象 方法。 (3)如果实现某接口的类是abstract的抽象类,则 它可以不实现该接口所有的方法。但是对于这个 抽象类任何一个非抽象的子类面言,它们父类所 实现的接口中的所有抽象方法都必须有实在的方 法体。
多个文件可以包含相同package声明。package声明 仅仅指定了文件中所定义的类属于哪一个包。
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
2类与对象
我们可以创建包层次。为做到这点,只要将每个包 名与它的上层包名用点号“.”分隔开就可以了。 一个多级包的声明的通用形式如下: package pkg1[.pkg2[.pkg3]];
2019/5/20
教学公共群:81246901 教学公共邮箱:ldxylmj@
10类与对象
(4)一个类在实现某接口的抽象方法时,必须使用 完全相同的方法头,如果所实现的方法与抽象方 法有相同的方法名和不同的参数列表,则只是在 重载一个新的方法,而不是实现已有的抽象方法。 (5)接口的抽象方法的访问限制符都已指定为 public,所以类在实现方法时,必须显式地使用 public修饰符,否则将被系统警告为缩小了接口 中定义的方法的访问控制范围。