Java学习总结之第六章 Java语言中的修饰符


一、访问控制修饰符

Java语言有四种级别的访问控制修饰符,如下:

l 公开级别:用public修饰,对外公开。

l 受保护级别:用protected修饰,向子类及同一个包中的类公开。

l 默认级别:没有访问控制修饰符,向同一个包中的类公开。

l 私有级别:用private修饰,只有类本身可以访问,不对外公开。

下表总结了这4种访问级别的可访问范围。

访问级别

访问控制修饰符

同类

同包

子类

不同的包

公开

public

受保护

protected

默认

没有访问控制修饰符

私有

private

注意:成员变量、成员方法和构造方法可处于4个访问级别中的一个。顶层类只可以处于公开或默认访问级别,不能用private和protected来修饰。访问级别仅仅适用于类及类的成员,而不适用于局部变量。

二、abstract修饰符

1、abstract修饰符可用来修饰类和成员方法。

2、使用abstract修饰符需要遵守以下语法规则:

l 抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类。如果子类没有实现父类中所有的抽象方法,那么子类也必须被定义为抽象类。

l 没的抽象构造方法,也没有抽象静态方法。

l 抽象类中可以有非抽象的构造方法,创建子类的实例时可能会调用这些构造方法。抽象类不能被实例化,然而可以创建一个引用变量,其类型是一个抽象类,并让它引用非抽象的子类的一个实例。

l 抽象类及抽象方法不能被final修饰符修饰。abstract修饰符和final修饰符不能连用。

三、final修饰符

1、final修饰符具有”不可改变”的含义,它可以修饰非抽象类,非抽象方法和变量。

l 用final修饰的类不能被继承,没有子类。

l 用final修饰的方法不能被子类的方法覆盖。

l 用final修饰的变量表示常量,只能被赋值一次。

2、对于final类型的实例变量,可以在定义变量时,或者在构造方法中进行初始化;对于final类型的

静态变量,可以在定义变量时进行初始化,或者在静态代码块中初始化。

3、如果将引用类型的变量用final修饰,那么该变量只能始终引用一个对象,但可以改变对象的内容。

四、static修饰符

1、static修饰符可以用来修饰类的成员变量、成员方法和代码块。

l 用static修饰的成员变量表示静态变量,可以直接通过类名来访问。

l 用static修饰的成员方法表示静态方法,可以直接通过类名来访问。

l 用static修饰的的程序代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。

2、在静态方法中,不能使用this和super关键字,也不能直接访问所属类的实例变量和实例方法,但

是可以直接访问所属类的静态变量和静态方法。

3、在实例方法中可以直接访问所属类的静态变量、静态方法、实例变量和实例方法。

4、一个静态方法不能被定义为抽象方法。

5、Java编译器把Java方法的源程序代码编译成二进制码,称为字节码。不管实例方法还是静态方法,

它们的字节码都位于方法区内。

6、如果类中包含多个静态块,那么Java虚拟机将按照它们在类中出现的顺序依次执行它们,每个静态代码块只会被执行一次。

7、类的构造方法用于初始化类的实例,而类的静态代码块则可用于初始化类。

8、给类的静态变量赋值。静态代码块和静态方法一样,也不能直接访问类的实例变量和实例方法,必须通过实例的引用来访问它们。

posted @ 2009-10-11 16:04  陆止于此 海始于斯  阅读(930)  评论(0编辑  收藏  举报