訪問控制(或隱藏具體實現)與「最初的實現並不恰當」有關。java
不少時候咱們須要重構代碼使之更可讀,更易理解,更具維護性,可是又不能影響到客戶端程序員的正常使用。咱們根本不知道客戶端程序員使用了哪些東西(方法),因此咱們也不知道哪些東西能夠改,爲了解決這個問題,java提供了訪問權限修飾詞。訪問修飾詞加上包結構使得構件的捆綁和使用機制很是完善,不產生衝突。程序員
6.1 包:庫單元spa
用包來分隔管理不一樣的類。繼承
不一樣包下的類須要導入,就是爲了提供一個管理名字空間的機制。package 和 import就是爲了解決名稱衝突問題。C中有條件編譯使得不改變代碼就能夠切換產生不一樣行爲(主要用來跨平臺)。Java中不須要這種功能,由於java自己就是跨平臺的。接口
6.2 Java訪問權限修飾詞get
6.2.1包訪問權限權限控制
即不使用任何訪問修飾詞,它使得同一包內的類能夠彼此輕鬆相互做用。編譯
類控制了哪些代碼能夠訪問本身的成員。取得對類成員訪問權限的途徑僅有:import
1.該成員是public重構
2.不加訪問修飾詞的成員可被同包類訪問
3.繼承能夠訪問protected成員
4.經過get/set訪問
6.2.2 public 接口訪問權限
6.2.3 private 你沒法訪問
6.2.4 protected 繼承訪問權限
6.3 接口和實現
訪問權限控制就是隱藏具體實現,就是封裝。
6.4類的訪問權限
只能夠是public或者包權限。