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