作用域public,private,protected,以及不写时的区别

先放一张表,有直观印象:

	作用域           当前类       同一package	  子孙类       其他package
	public             	  √            	  √               		  √             	√
	protected           √            	  √               	  	  √            	 ×
	default(缺省)      √            	  √                	  ×           		 ×
	private               √             	  ×                 	  ×           		 ×
	不写时默认为default.

解释说明:
public:
public公共的,表示该属性(或方法)公开,所有用户都可以直接进行调用。

default(缺省):
default表示默认,即不写时候的状态,不仅本类访问,而且是同包可见。

private:
private私有的,表示该属性(方法)为只有本类内部可以访问(类内部可见)。(想用private需要建立set和get方法供其他方法调用,是四种访问等级中最高的一种)。

protected:
protected受保护的,对于子类和同包下的类可见,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

不同修饰符可以修饰的内容:
public、private、protected和缺省default都可以用来修饰成员变量、成员方法和构造方法,除此之外,public还可以用来修饰类本身。

猜你喜欢

转载自blog.csdn.net/weixin_44495450/article/details/86350195