国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Thinking in JAVA筆記——第一章 對象導論

2019-11-14 23:49:34
字體:
來源:轉載
供稿:網友
Thinking in java筆記——第一章 對象導論

本章介紹面向對象的基本概念和原則

1.1抽象

我的理解:隱去復雜的,無用的屬性,留下程序所需要的

1.2每個對象都有接口

概念上的理解:定義類對外部提供的服務(方法),通過向對象發送消息來使用服務

JAVA接口概念interface:見后文

問題:接口和實現的概念,為什么引入接口機制(需要看具體章節)

1.3對象都提供服務

  1.問題分解(decompose)——自頂向下設計原則:考慮需要什么服務,再考慮需要的服務依賴什么服務,直到明確所需的對象存在或足夠簡單的編碼實現

   優點:使設計容易,高內聚性(fit together)

  2.OOP設計原則之一:使對象良好的完成一項任務,不要做太多的任務(多設計幾個對象共同完成)

   優點:易于復用,易于閱讀

1.4 隱藏具體實現

  1.分離類創建者(API提供者)和類使用者(客戶端程序員)

   優點:1.容易改變內部實現而不影響外部使用(易變性,易于升級,維護)

      2.減少客戶端程序Bug(安全性)

  2.訪問控制(access control):只提供服務,拒絕內部訪問,優點同上

  3.Java使用3個關鍵詞來設定訪問控制

    public,PRivate:只有類內部可以使用,protected:類內部,同一package和子孫類內部可以使用

  4.默認訪問權限:不知道關鍵字,包內可訪問,包外拒絕(實際相當于protected?)

1.5實現的復用Reuisng(實際講的是組合)

  1.組合/聚合:類內使用別的類的對象,”has-a“關系

  2.靈活性:類內對象一般為private,可以隨意、動態的改變

  3.OOP應該首先考慮組合,再考慮繼承,以免設計過于復雜(相關書籍《設計模式》,框架與設計模式的概念等)

1.6繼承

  1.繼承:以現有的類為基礎,復制,增加,和改變

  2.類可以描述特征和行為,類之間還存在關系

  3.子類繼承父類所有的特征、行為(包括不可操作的private類型)和接口,所有父類的消息都可以作用于子類,”is-a“關系

  4.子類可有有新的特征和行為,更重要的:子類可以重寫/覆蓋(overriding)父類的方法

  1.6.1”是一個”與“像是一個”關系 Is a,is lika a

    is-a:子類沒有新的方法——替代原則

    is-like-a:子類添加新的方法——不純粹的替代

    我的理解:is-a用于使用不同的方法實現父類的接口,is-lika-a適用于父類較抽象,而子類較具體,需要添加新的特征和行為

1.7 多態

  1.子類調用父類方法,編譯器在編譯時間不確定執行哪一段代碼,對象會去執行恰當的代碼

  2.非oop,前期綁定,編譯器產生函數代碼的絕對入口地址

   oop:后期綁定,編譯器知道函數存在,執行參數及返回值堅持,但不明確具體代碼,運行時間才知道執行代碼。java默認為動態綁定,詳細見多態章節

  3.向上轉型(upcasting)把子類對象傳給需要父類對象的方法,安全,符合邏輯,多態機制在運行時間自動決定執行代碼,使程序設計更簡單和更易擴展

*多態的一個優點:定義新的子類可以將其新方法寫在子類的定義中覆蓋父類的方法,不必改變父類的代碼。

極大改善了設計,降低維護的代價!

*一個簡單的多態例子:一個方法需要父類的對象作為參數。方法中向該參數對象發送消息(調用該對象方法)。

子類的對象可以作為參數傳遞給該方法,而運行時間自動定位的子類的方法執行不同的代碼。

1.8單根繼承結構

所有的類都繼承單根父類Object

1.9 容器

一種特殊的對象,包含其他對象的引用,可以輕松動態擴展。(實質包含內部不同的數據結構實現)

1.9.1泛型

1.10對象的生命周期

創建和銷毀對象

java提供動態創建對象(在heap中)和垃圾回收機制,比才c++更安全,編碼更容易,代價是一定的效率和靈活性。

1.11異常處理

異常是一個對象,在出做事被異常處理器獲取

java強迫使用異常機制,使編碼容易和可靠

1.12并行編程

java多線程,并行和同步,資源共享等概念(具體章節詳解)

1.13java與互聯網:略

1.14總結

OOP的好處:代碼和設計更容易理解和復用,更容易維護等等


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴隆县| 阜新| 铁岭县| 邹城市| 北海市| 岳阳市| 成安县| 营山县| 永年县| 开阳县| 安阳县| 米脂县| 喀喇| 阿瓦提县| 密山市| 博客| 色达县| 伊春市| 怀安县| 天津市| 普格县| 山阳县| 洪洞县| 安新县| 德昌县| 恭城| 岳西县| 元谋县| 吕梁市| 满洲里市| 合肥市| 鱼台县| 枣强县| 修文县| 蓬莱市| 丰镇市| 临海市| 天峨县| 库伦旗| 嘉善县| 开封市|