Java的访问控制

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

private访问控制spa

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

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

缺省访问控制it

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

protected访问控制ast

若是一个成员方法或成员变量名前使用了protected访问控制符,那么这个成员便可以被同一个包中的其余类访问,也能够被不一样包中的子类访问。class

public访问控制变量

若是一个成员方法或成员变量名前使用了public访问控制符,那么这个成员便可以被全部的类访问,无论访问类与被访问类是否在同一个包中。权限

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

 

 

private

defalut

protected

public

同一类

同一包中的类

 

子类

 

 

其余包中的类

 

 

 

表4.1

4.6.2 类的访问控制

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

注意:

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

相关文章
相关标签/搜索