本文将分两个部分介绍Java的访问控制,一个是类中成员的访问控制,另一个是类本身的访问控制。
成员访问控制
Java中共有3个访问控制符:private,protected,public, 有四种访问权限private,default(默认),protected,public。在类中声明属性和方法,包括内部类时,可以通过关键字声明对应的访问权限。
- private, 私有访问权限,使用关键字
private
进行权限控制。使用private声明的属性和方法只能在本类中被访问。 - default, 包访问权限, 无关键字。声明属性或方法时,如果没有使用任何的权限声明,则使用default权限。默认权限可以本包中的其他类访问,但无法被其他包中的类访问。
- protected, 继承访问权限,使用关键字
protected
进行权限控制。protected权限可以被本包中的其他类和其他包中的子类访问。 - public, 公共访问权限,使用关键字
public
进行权限控制。public权限可以被所有的类访问。
总结:
范围 | private | default | protected | public |
---|---|---|---|---|
同一类中 | √ | √ | √ | √ |
同一包中(子类和非子类) | × | √ | √ | √ |
不同包中的子类 | × | × | √ | √ |
不同包中的非子类 | × | × | × | √ |
类的访问控制
类的访问控制只有两种public和default(包访问权限)。
- public权限,可以被其他任何类访问。需要在创建类时,使用public进行声明。在同一个文件中,最多只能有一个类被声明为public,且其类名需和文件名保持一致。通常情况下,一个文件中有一个具有public权限的类和若干个具有默认访问权限的类。
- default权限,只能在同一包中被访问,创建类时,无需关键字。同一个文件中可以有多个具有default权限的类,类名和文件名无需一致。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。