溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java對(duì)象的知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2022-01-05 17:52:47 來(lái)源:億速云 閱讀:114 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“Java對(duì)象的知識(shí)點(diǎn)有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Java對(duì)象的知識(shí)點(diǎn)有哪些”吧!

1、問(wèn)題的復(fù)雜性直接取決于抽象的類(lèi)型和質(zhì)量,同一個(gè)問(wèn)題,如果抽象的方法不同或質(zhì)量不同,解決時(shí)的復(fù)雜性可能有很大差距

2、面向?qū)ο笏枷氲膶?shí)質(zhì)是:程序可以通過(guò)添加新類(lèi)型的對(duì)象使自身適用于某個(gè)特定問(wèn)題

3、面向?qū)ο蟪绦蛟O(shè)計(jì)方式的五個(gè)基本特性(最初來(lái)自smalltalk)
a、萬(wàn)物皆為對(duì)象/Everything is an object.
b、程序是對(duì)象的集合,它們彼此通過(guò)發(fā)送消息來(lái)調(diào)用對(duì)方/A program is a bunch of objects telling each other what to do by sending messages.
c、每個(gè)對(duì)象都擁有由其它對(duì)象所構(gòu)成的存儲(chǔ)/Each object has its own memory made up of other objects.
d、每個(gè)對(duì)象都擁有其類(lèi)型(type)/Every object has a type.
e、某一個(gè)特定類(lèi)型的所有對(duì)象都可以接收(receive)同樣的消息/All objects of a particular type can receive the same messages

[@more@]

4、類(lèi):具有相同特性(數(shù)據(jù)元素)和行為(功能)的對(duì)象集合。

5、接口定義了你能夠?qū)δ骋惶囟▽?duì)象發(fā)出的請(qǐng)求

6、對(duì)象應(yīng)被看作服務(wù)提供者

7、訪問(wèn)控制的原因:
a、讓客戶端程序員(類(lèi)消費(fèi)者)無(wú)法觸及他們不應(yīng)該觸及的部分
b、允許庫(kù)設(shè)計(jì)者(類(lèi)創(chuàng)建者)可以改變類(lèi)內(nèi)部的工作方式而不用擔(dān)心是否會(huì)影響到客戶端程序員

8、三個(gè)訪問(wèn)指定詞(access specifier):public、private、protected

9、public:任何人都可以使用;
private:除了類(lèi)創(chuàng)建者和類(lèi)的內(nèi)部方法外,任何人都不能訪問(wèn);
protected:與private類(lèi)似,差別在于繼承類(lèi)可以訪問(wèn)父類(lèi)的protected成員,但不能訪問(wèn)private成員;
還有一種缺省訪問(wèn)權(quán)限為package,此權(quán)限下,類(lèi)可以訪問(wèn)在同一個(gè)包中的其它類(lèi)成員,但是在包外,這些成員如同private一樣

10、試圖訪問(wèn)private成員,會(huì)得到編譯時(shí)錯(cuò)誤

11、組合,即使用現(xiàn)有類(lèi)來(lái)合成新的類(lèi);聚合,即動(dòng)態(tài)發(fā)生的組合;

12、建立新類(lèi)時(shí),應(yīng)優(yōu)先考慮組合,之后才是繼承

13、繼承一個(gè)類(lèi)而不去重新定義繼承到的方法(即不去重載),那么在基類(lèi)接口中的方法將會(huì)被直接繼承到導(dǎo)出類(lèi)中

14、子類(lèi)與父類(lèi)相比,沒(méi)有添加新方法,則稱二者關(guān)系為"is-a";如果添加了新方法,則為"is-like-a"

15、非面向?qū)ο缶幾g器產(chǎn)生函數(shù)調(diào)用都是使用前期綁定的,即鏈接器將這個(gè)調(diào)用解析到將要被執(zhí)行代碼的絕對(duì)地址;而在OOP中,程序直到運(yùn)行時(shí)刻才能確定代碼的地址,編譯時(shí)只是確保被調(diào)用的方法存在,并對(duì)調(diào)用參數(shù)和返回值執(zhí)行類(lèi)型檢查(能夠提供此類(lèi)保證的為強(qiáng)類(lèi)型語(yǔ)言,不能提供的為弱類(lèi)型語(yǔ)言-weakly typed),但并不知道將會(huì)被執(zhí)行的確切代碼。

16、C++中,使用virtual關(guān)鍵字來(lái)明確聲明希望某個(gè)方法使用動(dòng)態(tài)綁定,而缺省狀況下不是動(dòng)態(tài)綁定的;在JAVA中,動(dòng)態(tài)綁定是缺省行為

17、abstract關(guān)鍵字把類(lèi)標(biāo)識(shí)為抽象類(lèi),抽象類(lèi)不能創(chuàng)建對(duì)象,否則會(huì)產(chǎn)生編譯時(shí)錯(cuò)誤

18、abstract關(guān)鍵字還可以用來(lái)描述尚未被實(shí)現(xiàn)的方法,即抽象方法,它的含義為:這是一個(gè)從此類(lèi)中繼承出的所有類(lèi)型都具有的接口方法,但是此刻我沒(méi)有為它設(shè)計(jì)任何具體實(shí)現(xiàn);抽象方法只能在抽象類(lèi)內(nèi)部創(chuàng)建,該類(lèi)被繼承時(shí),抽象方法必須被實(shí)現(xiàn),否則繼承類(lèi)仍然是抽象類(lèi)(即繼承類(lèi)也必須由abstract關(guān)鍵字修飾,編譯器將會(huì)檢查這一點(diǎn))。抽象方法的意義在于:你可以將一個(gè)方法置于接口中,而不必被迫為此方法提供可能毫無(wú)意義的方法體。

19、接口(interface)中不允許有任何方法體定義,即所有方法都是抽象的,但并不需要特別聲明abstract關(guān)鍵字,抽象程序的順序?yàn)椋浩胀?lèi)<抽象類(lèi)<接口

20、一般來(lái)說(shuō)在JAVA中,需要多少對(duì)象,對(duì)象的生命周期,以及對(duì)象的具體類(lèi)型,都要到運(yùn)行時(shí)才能真正確定

21、容器,是一種很有用的概念,也可以說(shuō)是一種思考方式,對(duì)象的個(gè)數(shù)、類(lèi)型、生命周期,都可以通過(guò)為對(duì)象設(shè)置容器的方法來(lái)控制,簡(jiǎn)單來(lái)說(shuō),一個(gè)數(shù)組就是數(shù)組中每個(gè)元素的容器。這種方式在各種語(yǔ)言中都被普遍使用,在C++中,容器是標(biāo)準(zhǔn)C++類(lèi)庫(kù)(也叫做標(biāo)準(zhǔn)模板類(lèi)庫(kù),Standard Template Library,STL)的一部分

22、List類(lèi),列表,用于存儲(chǔ)序列;Map類(lèi),散列表,也叫作關(guān)聯(lián)數(shù)組,用于建立對(duì)象之間的關(guān)聯(lián);Set類(lèi),集,用于存儲(chǔ)一類(lèi)對(duì)象

23、單根繼承結(jié)構(gòu):所有的類(lèi)最終都繼承自單一的基類(lèi),即Object類(lèi),所以可以存儲(chǔ)Object的容器可以存儲(chǔ)任何東西(不包括基本類(lèi)型)

24、因?yàn)橛辛藛胃^承結(jié)構(gòu)和通過(guò)引用來(lái)操作對(duì)象的系統(tǒng)特性,垃圾回收器才能夠?qū)崿F(xiàn)

25、我們不知道垃圾回收何時(shí)啟動(dòng)并將持續(xù)多久,所以同一個(gè)JAVA程序的執(zhí)行速度可能會(huì)出現(xiàn)前后不一致的情況,因此在某些強(qiáng)調(diào)程序執(zhí)行速度一致的場(chǎng)合就不能使用它,比如較嚴(yán)格的實(shí)時(shí)程序

26、JAVA的異常處理是內(nèi)置的、強(qiáng)制使用的,如果沒(méi)有編寫(xiě)正確的異常處理代碼,將會(huì)得到編譯時(shí)錯(cuò)誤

27、異常處理不是面向?qū)ο蟮奶卣?,在面向?qū)ο笳Z(yǔ)言出現(xiàn)前,異常處理就已經(jīng)存在了

28、通常,多線程只是一種為單一處理器分配執(zhí)行時(shí)間的手段,但是如果是在多處理器環(huán)境,那么每個(gè)線程都可以被指派給不同的處理器,那樣才是真正的并行執(zhí)行;語(yǔ)言級(jí)別上多線程的好處之一就是程序員不用關(guān)心機(jī)器上有多個(gè)還是一個(gè)處理器

29、Java提供對(duì)輕量級(jí)持久性(lightweight persistent)的支持,稱為輕量級(jí),是因?yàn)槿匀恍枰獎(jiǎng)?chuàng)建顯式的調(diào)用來(lái)執(zhí)行存儲(chǔ)和取回操作,輕量級(jí)持久性是通過(guò)對(duì)象序列化(object serialization)或Java數(shù)據(jù)對(duì)象(JDO,Java Data Object)來(lái)實(shí)現(xiàn)的

30、客戶/服務(wù)器系統(tǒng)的核心思想是:系統(tǒng)具有一個(gè)中央信息存儲(chǔ)池(central repository of information),用來(lái)存儲(chǔ)某種數(shù)據(jù),它通常存在于數(shù)據(jù)庫(kù)中,信息與軟件的宿主機(jī)器(或機(jī)器集群)被稱為服務(wù)器(server),信息可以根據(jù)需要被分發(fā)給某個(gè)人員或機(jī)器集群(client)

31、插件,客戶端下載一段代碼,并將其插入到瀏覽器中適當(dāng)?shù)奈恢?,以此?lái)為瀏覽器添加新功能。

32、腳本語(yǔ)言,可以將客戶端程序的源代碼直接嵌入到HTML頁(yè)面中去,解釋這種語(yǔ)言的插件在HTML頁(yè)面被顯示時(shí)將自動(dòng)激活(需要瀏覽器支持此種腳本語(yǔ)言才行),優(yōu)點(diǎn)是當(dāng)服務(wù)器收到要獲取該個(gè)頁(yè)面的請(qǐng)求時(shí),它們可以被快速加載,缺點(diǎn)是這些代碼將被暴露給任何人看

33、Java applet勝過(guò)腳本語(yǔ)言的優(yōu)勢(shì)是,它是以編譯過(guò)的形式存在的,因此源代碼對(duì)于客戶端來(lái)說(shuō)是不可見(jiàn)的,當(dāng)然,如果你真的想反編譯它,也不需要花費(fèi)多少力氣;注意如果applet編譯后很大的話,可能需要額外的時(shí)間去下載它,而腳本語(yǔ)言程序是集成到Web頁(yè)面中的,通常比較小,因此在需要考慮網(wǎng)站相應(yīng)能力時(shí),應(yīng)該優(yōu)先使用腳本語(yǔ)言

感謝各位的閱讀,以上就是“Java對(duì)象的知識(shí)點(diǎn)有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Java對(duì)象的知識(shí)點(diǎn)有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI