Jim’s blog

June 2, 2005

《Thinking In Java》筆記 - Chapter (5)

【11:03 pm By Jim】

* 讓變動的事物與不變的事物彼此隔離,是OOD的首要考慮因素。

  • package:library unit

  • (1)package name 採用反相 internet 域名,以確保其唯一性,並且規定皆爲小寫(Java2 開始規定);

    (2)import 的兩個 library 如含有同名的 class 則仍會發生衝突,可通過在使用時通過指定具體的 package.class 名來解決,如:
    java.util.Random random = new Random();

  • Access Specifiers

  • (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。

  • Interface 與 Implementation

  • (1)訪問權限
    ① 建立界限,保護(密)代碼;

    ② 使得接口和實現分離、獨立。

    (2)class 的訪問權限
    ① 每個編譯單元(即文件)都僅能有一個 public class;

    ② public class 的名稱(包括大小寫)必須與其編譯單元名稱完全相同;

    ③ 編譯單元內可以不含有任何的 public class;

    ④ 除 inner class,class 不能聲明爲 private 或 protected;

    ⑤ 使用 private class:
    A. 可在 private class 內增加起接口作用的 static 成員,通過 static 成員來使用 private 成員;

    B. 使用 Singleton。

    Comments »

    The URI to TrackBack this entry is: http://jim.blogsome.com/2005/06/02/thinking-in-java-chapter-5/trackback/

    No comments yet.

    RSS feed for comments on this post.

    Leave a comment

    Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



    This work is licensed under a Creative Commons License .
    Get free blog up and running in minutes with Blogsome | Theme designs available here