- 以下是針對成員變量作用域的對比。
- 以下修飾符只能修飾成員變量,不能修飾局部變量。因爲局部變量本身就只能被方法內部使用,所以添加修飾符沒有意義。
- private和protected不能修飾外部類,只有public、final、abstract可以修飾外部類
作用域與可見性 | 當前類 | 同一package | 子類 | 其他package |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
public:表示該成員變量或方法對所有類或對象都是可見的,所有類或對象都可以直接訪問。
protected:表明成員變量或方法對該類自身,與它在同一個包中的其它類,在其它包中的該類的子類都可見。
default:表明該成員變量或方法只有自己和與其位於同一包內的類可見。若父類與子類在同一包內,則子類對父類的default成員變量或方法都有訪問權限;若父類與子類位於不同的package內,則沒有訪問權限。
private:表明成員變量或方法是私有的,只有當前類對其局域訪問權限,除此之外其他類(包括子類)或者對象都沒有訪問權限。