1 / 24
文档名称:

04 类的高级特性.ppt

格式:ppt   页数:24
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

04 类的高级特性.ppt

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

04 类的高级特性.ppt

文档介绍

文档介绍:Java2 网络编程基础
类的高级特性
第四章
4
回顾
类是对象的抽象,将对象的属性和行为抽象为类中的数据和方法。
extends 关键字用于继承类。
super关键字用来解决如何直接访问或初始化从父类继承来的属性。
构造方法名称与类的名称相同,且没有返回类型。
方法重载和方法重写是Java实现多态性机制的方式。
目标
掌握类的静态成员
掌握final关键字用法
掌握抽象类的定义和用法
掌握接口的定义和用法
掌握高级访问控制        
了解内部类的概念
类的静态成员
类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。
类的静态成员可以与类的名称一起使用,而无需创建类的对象。
静态变量或方法也称为类变量或类方法。
用static修饰符修饰,可以是变量、方法或代码块
思考:引入静态成员的意义?
静态变量
不管创建了类的多少实例,整个类中静态变量的副本只有一个。
引用静态变量的方法:
通过引用类的任一实例
通过类的名称
class StaticDemo {
static int x = 0;
StaticDemo(){x++;}
}
StaticDemo d1 = new StaticDemo();
StaticDemo d2 = new StaticDemo();
= 100 ;
= 200;
testVariable = ;
通过类实例访问
不是一个好方法
StaticDemo d1 = new StaticDemo();
StaticDemo d2 = new StaticDemo();
= 100;
= 200;
testVariable = ;
声明为static的变量实质上就是全局变量
通过类名访问
静态方法
与静态方法相关的几个要点:
类的静态方法只能访问其他的静态成员
静态方法没有this
静态方法不能被重写为非静态方法
class StaticFun {
static int i = 10;
int j;
static void setValue(int x) {
j=x;//出错
(" "+ i);
}
}
不能访问非静态变量j,可以访问静态变量i
class StaticTest {
static void test() { }
}
class Staticex extends StaticTest{
void test() {}//出错
}
静态块
如果需要通过计算来初始化静态变量,可以声明一个静态块。
静态块仅在该类被加载时执行一次。
只能初始化类的静态数据成员。
class TryInitialization {
static int[] values = new int[10]; //静态数组成员
static {
for(int i=0; i<; i++)
values[i] = (int)(*());
}
}
final 关键字/final类
final 修饰符可应用于类、方法和变量。
final在应用于类、方法和变量时意义是不同的,但本质是一样的:final表示不可改变。
声明为final的类不能被继承。
final 类示例:

final class TestFinal {
int i = 7;
int j = 1;
void f() {}
}
class Further extends TestFinal {}
final类不能被继承
final 方法
在方法声明中使用 final 关键字向编译器表明子类不能覆盖此方法。
在声明类中,一个 final 方法只被实现一次。
如果一个类为 final 类,那么它的所有方法都为隐式的 final 方法。
class TestFinal {
final void f() {}
}
class Further extends TestFinal {
final void f(){}
}
final方法不能被覆盖
final 变量
一个变量可以声明为final,这样做的目的是阻止它的内容被修改。
声明final变量后,只能被初始化一次,然后就不能对其值进行修改。
一个final变量实质上是一个常量。
class FinalDemo {
public static void main(String args[]){
final int noChange = 20;
noChange =