2

本文将分两个部分介绍Java的访问控制,一个是类中成员的访问控制,另一个是类本身的访问控制。

成员访问控制

Java中共有3个访问控制符:private,protected,public, 有四种访问权限private,default(默认),protected,public。在类中声明属性和方法,包括内部类时,可以通过关键字声明对应的访问权限。

  1. private, 私有访问权限,使用关键字private进行权限控制。使用private声明的属性和方法只能在本类中被访问。
  2. default, 包访问权限, 无关键字。声明属性或方法时,如果没有使用任何的权限声明,则使用default权限。默认权限可以本包中的其他类访问,但无法被其他包中的类访问。
  3. protected, 继承访问权限,使用关键字protected进行权限控制。protected权限可以被本包中的其他类和其他包中的子类访问。
  4. public, 公共访问权限,使用关键字public进行权限控制。public权限可以被所有的类访问。

总结:

范围 private default protected public
同一类中
同一包中(子类和非子类) ×
不同包中的子类 × ×
不同包中的非子类 × × ×

类的访问控制

类的访问控制只有两种public和default(包访问权限)。

  1. public权限,可以被其他任何类访问。需要在创建类时,使用public进行声明。在同一个文件中,最多只能有一个类被声明为public,且其类名需和文件名保持一致。通常情况下,一个文件中有一个具有public权限的类和若干个具有默认访问权限的类。
  2. default权限,只能在同一包中被访问,创建类时,无需关键字。同一个文件中可以有多个具有default权限的类,类名和文件名无需一致。

luckyqiao
214 声望9 粉丝