物件導向設計的核心原則:「將變化的事物與不變的事物分離」。對函式庫設計者而言,這意味著必須保護內部實作細節不被客戶端代碼依賴,同時保留未來修改與優化的彈性。
Java 提供四種存取控制層級,從寬鬆到嚴格:
public:完全公開,任何地方可存取protected:同套件 + 子類別可存取private:僅類別內部可存取庫設計者應盡可能將成員設為 private,僅暴露必要的 public 介面。這雖違背 C 程式設計師「全存取」的直覺,但能確保:
package 關鍵字將組件綁定為統一的庫單元,而存取指示符的效力受限於「同套件」與「不同套件」的區別。理解這層關係,才能真正掌握 Java 封裝的完整含義。
本章將先介紹如何將組件放入套件,再深入探討存取指示符的完整語意,為建構健壯、可維護的類別庫奠定基礎。