Thinking in Java 讀書筆記 —— 1.Introducation to Object

來源:互聯網
上載者:User

All +
All -

Thinking in Java

  • 1.Introducation to Object

    • + -
      物件導向——抽象

      • 1.你可以把要解決的問題中所有的概念性的組件都當做一個對象
      • 2.程式是一組相互之間傳遞訊息,告訴對方該幹什麼的對象。

        訊息,是調用專屬於某個對象的方法的請求。
      • 3.
      • 4.任何對象都是某個類的執行個體
      • 5.所有屬於同一個類的對象都可以接受同樣的訊息
      • 所有對象都有 狀態、行為 和 標示
      • 每個對象都屬於某個類,而這些類定義它的特徵和行為
      • 類描述的是一組有共同特徵和行為的對象
      • 類實際上也是一種資料類型
        • 類,是程式員為解決特定問題而定製的
        • 資料類型,是為了表示電腦的儲存單元而設計的
      • 對象,是 類 的 執行個體
      • 每個對象,都是這個類的一個獨立的個體
    • + -
      物件導向——介面

      • 每個對象只能滿足某些請求,而對象所能接受的請求,

        是由其所屬的類定義的介面決定的
      • 介面只負責決定對象所能接受的請求,而對象對

        該請求做出的響應,是由“實現”程式碼完成的
      • 你向對象發送了一個訊息(提交了一個請求)

        對象會決定如何處置這個訊息(執行代碼)
      • Light lt = new Light()

        lt.on();
    • + -
      物件導向——服務

      • 對象——服務的提供者

        軟體工程師的任務就是製作一組為解決問題提供最佳服務的對象。
      • 在良好的物件導向設計中,一個對象應該只作

        一件事,並且做好一件事,而不是作很多事。
      • 良好的物件導向設計應當是高內聚的
    • + -
      隱藏實現

      • 程式員分類

        • 類的建立者
        • 客戶程式員——類的使用者
      • 對類的內部實現進行隱藏,可以避免類內部的敏感部分被誤操作
      • 只允許客戶程式員通過類定義的介面進行訪問,

        可以在不影響客戶程式員使用的情況下,修改具體的內部實現
      • public ——任何人都可以訪問
      • private ——只有類的建立者可以訪問
      • protected ——只有繼承類可以訪問
      • package ——預設的存取權限
        • 同屬某個package的類可以訪問其他類的預設存取權限的成員
        • 在package外,預設存取權限的成員被當做 private 成員
    • + -
      複用實現

      • 直接用某個類建立它的對象
      • 把類的對象放到一個新的類中——建立一個成員對象
      • 合成 composition —— 用多個不同類型的已有的類組合成新的類
      • 彙總 aggregation —— 動態合成
      • 通常將“合成”成為 has-a 關係 ,例如:轎車有引擎
      • 在建立新類時,應當優先考慮使用“合成”
    • + -
      繼承:複用介面

      • 基類,超類,父類
      • 衍生類別,繼承類,子類
      • 基類的變化,會對衍生類別產生影響
      • 基類儲存的是所有繼承自它的類的共有特徵和行為
      • 所有可以傳給基類的訊息也都可以傳給其衍生類別
      • 可以通過一個類可以接收什麼訊息來判斷這是一個什麼類
      • 衍生類別與基類是屬於同一類型的——類的相等性
      • extends
      • override——在衍生類別中重新定義基類的方法
      • 完全替換(pure substitution)
      • is-a 關係
      • is-like-a 關係
    • + -
      多態

      • 泛型
      • 後綁定
      • upcasting
    • + -
      abstract 類

      • 編譯器會禁止任何人建立abstract 類的對象
      • abstract 方法
      • abstract 方法只存在於 abstract 類中
      • abstract 方法表示由該類派生的所有類都有這個方法,

        但這個方法的實現不在這裡
      • 如果某個類繼承自abstract 類,那麼要麼把abstract

        方法實現,要麼也是一個abstract 類
    • + -
      interface 關鍵字

      • 不允許實現任何方法,將介面與實現徹底的分離
      • 可以繼承多個介面,但是不能繼承多個常規類或抽象類別
    • + -
      對象的建立

      • 在堆中建立——C++ 的做法
      • 在棧中建立——java 的做法
      • new 關鍵字
      • 記憶體回收行程
    • + -
      容器(container)

      • 迭代器
    • 單根繼承體系
    • 上傳/下傳/參數化型別
    • 異常處理
    • + -
      並發

      • 線程
      • 鎖定資源
    • persistence
    • + -
      java與internet

      • web
      • 用戶端編程
      • 外掛程式
      • 指令碼語言
      • 伺服器端編程
        • servlet
        • JSP
    • + -
      java為什麼會成功

      • 系統能更易於表述和理解
      • 最大程度上利用類庫
      • 異常處理
      • 適於編寫大型系統
    • java 還是 C++ ?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.