摘要:基類導出類導出類繼承了基類的特點,基類和導出類具有相同的基礎接口,形成兩者差異的做法在導出類中添加新方法在導出類型中添加新的接口元素,擴展了接口。覆蓋在導出類用創建方法的新定義,覆蓋基類中的方法定義純粹替代,只覆蓋。
一、抽象過程
建模基于計算機的結構
“解空間”的解
匯編語言:對底層機器的輕微抽象
“命令式”語言:匯編語言的抽象
建模基于待“解決問題
“問題空間”的元素
面向對象
二、每個對象都有一個接口創建抽象數據類型(類)
類:相同特性(數據元素)和行為(功能)的對象
主要任務:問題空間的元素和解空間的對象之間創建一對一的映射
類型決定接口——接口確定可發請求——產生請求——獲得對象——方法(代碼)調用
將對象想象為服務提供者,提高對象的內聚性。每個對象做好自己的份內事。
四、控制訪問public:任何人可用
private:子類不可用超類
protected:子類可用超類
直接使用該類的一個對象
將那個類的一個對象置于某個新的類中(創建一個成員對象)
組合:使用現有的類合成新的類 has-a 擁有關系
聚合:動態組合
組合帶來靈活性,新類成員通常被聲明為private。
不要第一反應就是繼承,可以嘗試組合。
對象這種工具使得程序員可以用概念(類class)將數據和功能封裝到一起。
基類——導出類
導出類繼承了基類的特點,
基類和導出類具有相同的基礎接口,形成兩者差異的做法:
1、在導出類中添加新方法
is-like-a:在導出類型中添加新的接口元素,擴展了接口。
2、覆蓋(在導出類用創建方法的新定義,覆蓋基類中的方法定義)
is-a:純粹替代,只覆蓋。七、伴隨多態的可互換對象
基類中,方法操作時泛化的
非OOP的編譯器采用前期綁定,對一個具體函數名字調用,解析到將要執行代碼的絕對地址。
而OOP的編譯器采用了后期綁定,當向對象發送消息時,代碼直到程序運行時才能確定。編譯器確保調動方法的存在,并對調用變元和返回值執行類型檢查。
轉型
向上轉型:將導出類看做它的基類
所有東西都是Object類型
九、容器不知道解決問題時需要多少對象、多少空間怎么辦?
容器,創建一種對象類型,持有對其他對象的引用,在任何需要時都可擴充自己以容納置于其中的所有東西。
List:用于儲存序列
Map:也稱關聯數組,用來建立對象之間的關聯
Set:每種對象類型只持有一個
Queue、Tree、Stack……
不同容器
1、提供了不同類型的接口和外部行為
2、對于某些操作具有不同的效率
參數化類型
儲存Object的容器可以儲存任何東西。當將對象引用置入容器時,被向上轉型為Object,會丟失其身份;取回時,就獲取了一個對Object對象的引用。若要變回原先接口,需向下轉型,但向下轉型不安全。一種采用向下轉型的做法是異常處理。
更好的做法是參數化類型機制。參數化類型機制是一個類,編譯器可以通過自動定制,從而作用于特定類型上。
使用關鍵問題之一:對象生成和銷毀方式
1、編寫程序時設定:將對象置于堆棧(有時被稱為自動變量或限域變量)或靜態存儲區域內來實現。犧牲了靈活性。
2、在堆(heap)的內存池中動態地創建對象。創建堆存儲空間的事件依賴于存儲機制的設計。
動態方式一般性邏輯假設:對象趨于變得復雜,所以查找和釋放存儲空間的開銷不會對對象的創建造成重大沖擊。動態方式帶來更大的靈活性。
Java完全采用了動態內存分配方式。每當想要創建新對象時,就要使用new關鍵字來構建此對象的動態實例。
Java生命期:垃圾回收器
十一、異常處理:處理錯誤 十二、并發編程線程:獨立運行的部分(任務)
并發:把問題切分成多個線程,從而提高程序的響應能力
多線程優點:不必操心機器上是有多個處理器還是只有一個處理器
隱患:共享資源。解決方法:共享資源在使用期間被鎖定。
1)客戶/服務器計算技術
系統具有一個中央信息存儲池,可根據需要將它分發給某些人員或機器集群,其位置集中于中央,使得它可被修改,并且這些修改將被傳播給信息消費者。
服務器:信息存儲池、用于分發信息的軟件、信息與軟件所駐留的機器或機群
單一的服務器同時為多個客戶服務
2)Web就是一臺巨型服務器
關心:怎樣連接到一臺服務器上,并與之進行交互。
1)插件
2)腳本語言
3)Java
4)備選方案
Java applet
Flex
5).NET和C#
6)Internet和Intranet
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68495.html
摘要:基于版本基于版本。由于中英行文差異,完全的逐字逐句翻譯會很冗余啰嗦。譯者在翻譯中同時參考了谷歌百度有道翻譯的譯文以及編程思想第四版中文版的部分內容對其翻譯死板,生造名詞,語言精煉度差問題進行規避和改正。 來源:LingCoder/OnJava8 主譯: LingCoder 參譯: LortSir 校對:nickChenyx E-mail: 本書原作者為 [美] Bru...
摘要:學習編程的本最佳書籍這些書涵蓋了各個領域,包括核心基礎知識,集合框架,多線程和并發,內部和性能調優,設計模式等。擅長解釋錯誤及錯誤的原因以及如何解決簡而言之,這是學習中并發和多線程的最佳書籍之一。 showImg(https://segmentfault.com/img/remote/1460000018913016); 來源 | 愿碼(ChainDesk.CN)內容編輯 愿碼Slo...
摘要:方法簡介作用返回該對象的字符串表示。建議所有子類都重寫此方法。類的該方法返回一個字符串,該字符串由類名對象是該類的一個實例標記符和此對象哈希碼的無符號十六進制表示組成。 toString方法簡介 作用 返回該對象的字符串表示。通常,toString()方法會返回一個以文本方式表示此對象的字符串。結果應是一個簡明但易于讀懂的信息表達式。建議所有子類都重寫此方法。 Object 類的 to...
摘要:找到字節碼并創建一個對象。鏈接,檢驗字節碼,為字段分配存儲空間,解決其對他類的引用。初始化,如果有父類則初始化父類,執行靜態初始化器和靜態初始化區塊直到第一次訪問靜態成員時初始化才執行。如果成員不是編譯時常量由初始化器賦值,也會引起初始化。 有兩種形式在運行時獲取類型信息: 傳統的RTTI 反射 Class對象 運行時的類型信息是通過Class對象表現的,它包含了類的信息。所有...
閱讀 1762·2021-11-24 09:39
閱讀 1551·2021-11-16 11:54
閱讀 3497·2021-11-11 16:55
閱讀 1655·2021-10-14 09:43
閱讀 1445·2019-08-30 15:55
閱讀 1233·2019-08-30 15:54
閱讀 3421·2019-08-30 15:53
閱讀 1338·2019-08-30 14:18