Java的访问控制

Java的访问控制修饰符共有4个,分别是publicprotecteddefaultprivate。下面我们分别进行讲解。

private访问控制

在本章的前面,我们已经明白了private访问控制符的作用,如果一个成员方法或成员变量名前使用了private访问控制符,那么这个成员只能在这个类的内部使用。

注意:不能在方法体内声明的变量前加private修饰符。

缺省访问控制

如果一个成员方法或成员变量名前没有使用任何访问控制符,我们就称这个成员是缺省的(default),或是友元的(friendly),或是包类型的(package)。对于缺省访问控制成员,可以被这个包中的其他类访问,如果一个子类与父类位于不同的包中,子类也不能访问父类中的缺省访问控制成员。

protected访问控制

如果一个成员方法或成员变量名前使用了protected访问控制符,那么这个成员即可以被同一个包中的其他类访问,也可以被不同包中的子类访问。

public访问控制

如果一个成员方法或成员变量名前使用了public访问控制符,那么这个成员即可以被所有的类访问,不管访问类与被访问类是否在同一个包中。

最后,我们用一张图来总结上述访问控制符的权限。

 

 

private

defalut

protected

public

同一类

同一包中的类

 

子类

 

 

其他包中的类

 

 

 

表4.1

4.6.2 类的访问控制

除了类中的成员有访问控制外,类本身也有访问控制,即在定义类的class关键字前加上访问控制符,但类本身只有两种访问控制,即public 和默认,父类不能是private和protected,否则子类无法继承。public修饰的类能被所有的类访问,默认修饰(即class关键字前没有访问控制符)的类,只能被同一包中的所有类访问。

注意:

只要在class之前,没有使用public修饰符,源文件的名称可以是一切合法的名称。带有public 修饰符的类的类名必须与源文件名相同,而且只有一个。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章