《Thinking In Java》筆記 - Chapter (5)
* 讓變動的事物與不變的事物彼此隔離,是OOD的首要考慮因素。
(1)package name 採用反相 internet 域名,以確保其唯一性,並且規定皆爲小寫(Java2 開始規定);
(2)import 的兩個 library 如含有同名的 class 則仍會發生衝突,可通過在使用時通過指定具體的 package.class 名來解決,如:
java.util.Random random = new Random();
(1)public:所定義的成員可爲所用人使用;
(2)private:除其所在的 class,沒有任何人(包括 package 成員)可以訪問;
(3)protected:允許 class 自身、subclasses 以及 package 成員訪問;
(4)friendly(隱式):不加任何 Access Specifiers 的默認權限,類似於 protected,唯一的區別是不能被繼承使用;
(5)default package:假設成員皆爲 friendly(或是更高級別的權限),那麽同一目錄下的所有 class 即使不加任何 package、import 的聲明也可以相互的調用;這是因爲 Java 會將這些 class 視爲隸屬於該目錄的 default package,也就是說,會爲它們加上當前的目錄做爲 default package。
(1)訪問權限
① 建立界限,保護(密)代碼;
② 使得接口和實現分離、獨立。
(2)class 的訪問權限
① 每個編譯單元(即文件)都僅能有一個 public class;
② public class 的名稱(包括大小寫)必須與其編譯單元名稱完全相同;
③ 編譯單元內可以不含有任何的 public class;
④ 除 inner class,class 不能聲明爲 private 或 protected;
⑤ 使用 private class:
A. 可在 private class 內增加起接口作用的 static 成員,通過 static 成員來使用 private 成員;
B. 使用 Singleton。
【Filed under: 挨踢技術】
