访问控制
对象中的属性和方法,是可以根据指定修饰符来进行访问控制的。具体控制的就是这些属性和方法可以在什么地方被访问,以及在什么地方不能被访问。
概述
类中的属性和方法,可以使用以下四种修饰符进行访问控制:
public > protected > default > private
public
公共的,在所有地方都可以访问
protected
受保护的,当前类中、子类中,同一个包中其它类中可以访问
default
默认的,当前类中、同一个包中的子类中可以访问
注意:default默认的,指的是空修饰符,并不是default这个关键字(即在代码中不写修饰符即默认为default类型)
例:String name;在类中,就是默认修饰符
private
私有的,当前类中可以访问
修饰符可访问范围
修饰符 | 类中 | 同包非子类 | 同包子类 | 不同包子类 | 不同包非子类 |
---|---|---|---|---|---|
public | Y | Y | Y | Y | Y |
protected | Y | Y | Y | Y | N |
default | Y | Y | Y | N | N |
private | Y | N | N | N | N |
实例
-
当前类:不同修饰符都可以访问
-
同胞不同类:private不可以访问其他都可以
-
同包子类:private不可以访问其他都可以
-
不同包子类:public可以访问,protected在某种情况下可以访问。
注:当前包下的类调用另一个包下的类需要import
只有public可以访问
protected可以访问:(调用该属性的对象必须是当前类的对象而且引用也必须是当前类类型的引用)
- 不同包非子类:只有public可以访问
正常编写的类中,只能使用两种权限控制修饰符:public和default
在内部类中可以使用四种权限控制修饰符