修饰符 | 类内部 | 同包 | 子类 | 任何地方 |
private | yes | |||
default | yes | yes | ||
protected | yes | yes | yes | |
public | yes | yes | yes | yes |
访问控制修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。
私有的,以private修饰符指定,在同一类内可见。
默认的,也称为default,在同一包内可见,不使用任何修饰符。
受保护的,以protected修饰符指定,对同一包内的类和所有子类可见。
共有的,以public修饰符指定,对所有类可见。
私有访问修饰符-private
此乃最为严格的修饰符,所以被声明为的private的方法、变量和构造方法只能被所属类访问, 并且类和接口不能声明为private声明为private的属性只能通过公共的getter和setter方法类访问
默认访问修饰符-不使用任何关键字
使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为public static final,而接口里的方法默认情况下访问权限为public。
受保护的访问修饰符-protected
被声明为protected的变量、方法和构造器能被同一个包中的任何其他类访问,也能够被不同包中的子类访问Protected访问修饰符不能修饰类和接口,方法和成员变量能够声明为protected,但是接口的成员变量和成员方法不能声明为protected。子类能访问Protected修饰符声明的方法和变量,这样就能保护不相关的类使用这些方法和变量。
公有访问修饰符-public
被声明为public的类、方法、构造方法和接口能够被任何其他类访问。
如果几个相互访问的public类分布在不用的包中,则需要导入相应public类所在的包。由于类的继承性,类所有的公有方法和变量都能被其子类继承。