Java面向对象高级特性

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 接口不是类体系的一部分,即与实现它的类
不构成继承体系。抽象类通常位于类体系顶 层。
• 接口可用于多重继承。
2019/5/18
16
5.5 包
• 包的概念
Java中包是相关类与接口的一个集合,它提供了命名 空间的管理和访问。包具有特定的访问控制权限。
Java中编译器把包对应于文件系统的目录和文件管理, 还可以使用压宿文件的格式存储。
JDK中提供的包有 Java.applet Java.awt Java.event 等。
例如:名为 Java.applet的包中,所有类文件都存储 在目录 classpath\java\applet 下,这里classpath由 环境变量来设定。
2019/5/18
17
包机制的优点
• 易根据包中类的功能找到所需要的类,包中的类是
• 类方法(静态方法)
在类的成员方法声明中带有static关键字,
访问时可通过类名访问
例题5-2 static方法举例(P117)
2019/5/18
4
• 注意点
静态方法只能访问方法体内定义的局部变量、 自己的参数和静态变量。(因静态方法不是通 过调用对象实例,故在静态方法中没有this指 针)
子类不能重写父类的静态方法,不能将非静 态方法重写为静态的方法。
main() 是一个静态方法,是程序的入口点可 以使JVM不创建实例对象就可以运行方法。
2019/5/18
5
百度文库
• 静态初始化程序
类中不属于任何方法体中,并以static关键字修饰的 语句块。
如: static{ I=5; System.out.println(“Static code:I=”+I++) ;
…… }
• 注意点
抽象类不能实例化。可派生子类,在子类中
具体定义方法的功能。
2019/5/18
8
目的是为一类对象建立抽象的模型,在同类对象 所对应的体系中抽象类往往位距顶层。
使类的设计变的清晰、支持多态、为类的体
系提供通用的接口。
2019/5/18
9
abstract class Employee{ abstract void raiseSallory(int i);
} 注意 静态语句块只在加载类时执行一次,通常用来 进行类成员变量的初始化。 例题5-3:静态语句块与静态变量的访问。
2019/5/18
6
5.2 final关键字
• 在Java中,可以用final关键字声明类、成员
方法、成员变量。
被定义成final的类不能再派生子类如: Java.lang.String为一个final类。 被定义为final的方法不能重写,优点是在运 行时进行效率优化。
void erase();
}
interface ShapeArea extends Shape{
double area();
}
2019/5/18
15
接口与抽象类
两者有一定的相似,又有区别
• 接口中方法都是抽象的,而抽象类中可以定
义带有方法体的不同方法
• 一个类可以实现多个接口,而只可继承一个
抽象父类
[修饰符]interface接口名[extends 父接]
{
接口体;
}
修饰符为public时,指明任何类均可以使
用这个接口。
修饰符缺省时,只有与该接口定义在同一
个包中的类才可以访问该接口
2019/5/18
11
• 接口的实现与使用
implements 关键字用来表示实现某个接口, 在类体中可以使用接口中定义的常量,且须 实现接口中定义的所有方法。
} Class Manager extends Employee{
void raiseSallory(int i){……}; }
Employee e=new Manager(); //正确 Employee e=new Employee(); //错误
2019/5/18
10
5.4 接口
• 接口定义格式:
被定义为final的变量只能被赋值一次,常 用来定义常量,变量名一般大写。
例题5-4 final 变量在构造方法中赋值
2019/5/18
7
5.3抽象类
• 抽象方法 只有定义而没有方法体的方法。 • 抽象类 包含一个或多个抽象方法的类。 • 定义抽象类的格式为:
abstract class 抽象类名{
第五章
Java面向对象高级特性
2019/5/18
1
本章要点
• Static 、final关键字 • 抽象类 • 接口 •包 • 内部类 • 访问控制 • 其它
2019/5/18
2
§5.1 static关键字
用static(静态的)修饰的变量或方法又称为类变 量和类方法。
• 类变量(静态变量)
在成员变量声明时使用static关键字。 注意点:
类变量只在系统加载其所在类时分配空间并 初始化,实例化对象时不再分配空间,所有 实例对象将共享类的静态变量。 用途 可以用来在实例对象之间进行通信
2019/5/18
3
类似于其他语言中的全局变量,可以用类
名直接调用。 类名
Static变量
如:
Count.counter
例题5-1 static成员变量举例(P115)
public void takeoff ( ){ // 实现起飞的操作 }
public void land ( ){ //下落 } public void fly( ){ //起飞
}
}
例题5-5:通过接口实现多态示例.
2019/5/18
13
多重继承
• Java中规定一个类只能继承一个父类,但可
以实现多个接口, Java是利用接口实现多重 继承的。
一个类可以实现多个接口,在implements中 用“,” 分隔。例如:
Public interface Flyer{
public void takeoff();
public void land();
public void fly();
}
2019/5/18
12
Public class Airplane implements Flyer{
抽象或具体父类
Interface_1 Interface_2
Interface_n
父类方法
interface_1 interface2 …… interface_n
子类
2019/5/18
14
通过继承扩展接口
• 通过创建接口的子接口来增加新的方法。
如:
Interface Shape{
void draw();
相关文档
最新文档