先看下面表格:
作用域
|
當前類 |
同一package |
子孫類
|
其他package |
public |
√
|
√
|
√
|
√
|
protected
|
√
|
√
|
√
|
×
|
default |
√
|
√
|
×
|
× |
private |
√
|
×
|
×
|
×
|
不寫時默認為default
我們先看類:
public class Test 可以在任何地方訪問,無論是否為當前package
class Test 只允許當前的package使用,不允許其它package使用
class 不與許prirvate和protected ,所以不討論了
我們再看方法
private 的只允許類自己使用,子類都不可見。但允許inner類調用,因為inner類屬于他自己。
class Test 里面的方法
public 和default和protected 方法,允許同包的訪問,因為類是default的,所以方法不可能大于它
public class Test 里面的方法
private 只允許自己內部訪問
default 只允許同包的訪問
protected 只允許同包和子類訪問
public 可以任意訪問