Java 成員變量的訪問權限控制可以細致到不同的級別,具體包括以下四種:
- public:此成員變量可以從任何其他類訪問,無論該類是否是本類的子類。也就是說,public 成員變量具有最高的可見性。
- protected:此成員變量可以被同一個包內的類以及所有子類(即使子類位于不同的包中)訪問。這提供了一種折中的訪問控制,既保護了數據,又允許繼承的類使用它。
- default(包私有):如果成員變量沒有明確指定訪問修飾符,那么它的訪問級別就是默認的,也就是包私有。這意味著,只有同一個包內的類可以訪問該成員變量。如果一個類定義在某個包內,而它引用了另一個包中的默認訪問權限的成員變量,那么編譯器會報錯,因為默認訪問權限不允許跨包訪問。
- private:此成員變量只能在其所在的類中被訪問,即使是該類的子類也無法直接訪問。這是最嚴格的訪問控制級別,用于保護類的內部狀態不被外部代碼隨意修改。
總的來說,Java 提供了這四種訪問修飾符來控制成員變量的可見性和可訪問性,以滿足不同場景下的需求。