Java利用接口(interface)擴(kuò)展了抽象方法的概念。經(jīng)常需要指定一組抽象方法來(lái)定義一個(gè)對(duì)象的某種行為,而且根本不希望做任何實(shí)現(xiàn)。在Java中,這就稱(chēng)為一個(gè)接口。接口定義了類(lèi)所必須實(shí)現(xiàn)(implement)的一組方法。如果Java中的一個(gè)類(lèi)實(shí)現(xiàn)...[繼續(xù)閱讀]
海量資源,盡在掌握
Java利用接口(interface)擴(kuò)展了抽象方法的概念。經(jīng)常需要指定一組抽象方法來(lái)定義一個(gè)對(duì)象的某種行為,而且根本不希望做任何實(shí)現(xiàn)。在Java中,這就稱(chēng)為一個(gè)接口。接口定義了類(lèi)所必須實(shí)現(xiàn)(implement)的一組方法。如果Java中的一個(gè)類(lèi)實(shí)現(xiàn)...[繼續(xù)閱讀]
包(package)是一組相關(guān)的類(lèi)和接口。在第三章中,我們?cè)?jīng)討論了Java如何使用包名從而在編譯和運(yùn)行時(shí)找到類(lèi)。從這個(gè)意義上說(shuō),包有些類(lèi)似于庫(kù);它們對(duì)各組類(lèi)進(jìn)行組織和管理。不過(guò),包所提供的絕不僅僅是源代碼級(jí)的組織。它們還為其...[繼續(xù)閱讀]
面向?qū)ο笤O(shè)計(jì)的一個(gè)最為重要的方面就是數(shù)據(jù)隱藏(datahiding),或封裝(encapsulation)。在某些方面,通過(guò)將對(duì)象看作為一個(gè)“黑盒”,并忽略其實(shí)現(xiàn)的細(xì)節(jié),這樣利用可以輕松重用的組件就能夠編寫(xiě)出更為強(qiáng)大、更為簡(jiǎn)單的代碼?;驹L(fǎng)問(wèn)修...[繼續(xù)閱讀]
在第四章的最后,我們?cè)岬?數(shù)組在Java的類(lèi)層次體系結(jié)構(gòu)中也有一席之地,但是并未提供任何詳細(xì)說(shuō)明。既然已經(jīng)討論了Java的面向?qū)ο蠓矫?下面就可以提供一個(gè)完整的描述了。數(shù)組類(lèi)位于Object類(lèi)之下,并且有著并行的Java類(lèi)層次體系結(jié)...[繼續(xù)閱讀]
Java1.1為在語(yǔ)言中增加了大量的“迷藥”,它們稱(chēng)為內(nèi)部類(lèi)(innerclass)。簡(jiǎn)單地說(shuō),Java中的類(lèi)可以在任何范圍級(jí)別上聲明。也就是說(shuō),可以在任何大括號(hào)對(duì)之間聲明一個(gè)類(lèi)(即,只要能夠放置其他的Java語(yǔ)句,就可以聲明一個(gè)類(lèi)),而且其可見(jiàn)性?xún)H...[繼續(xù)閱讀]
java.lang.Object是所有對(duì)象的祖先;這是一個(gè)“始發(fā)”類(lèi),所有其他類(lèi)歸根結(jié)底都由此派生。因此在Object類(lèi)中定義的方法就非常重要,因?yàn)樨灤㎎ava始終,它們出現(xiàn)在每個(gè)類(lèi)的每個(gè)實(shí)例中。據(jù)最后統(tǒng)計(jì),在Object中有9個(gè)公共方法。其中5個(gè)是各種...[繼續(xù)閱讀]
要衡量一種面向?qū)ο笳Z(yǔ)言的復(fù)雜性,其類(lèi)結(jié)構(gòu)的抽象程度可謂是一個(gè)不錯(cuò)的標(biāo)準(zhǔn)。我們知道,Java中每個(gè)對(duì)象都是一個(gè)類(lèi)的實(shí)例,但是究竟什么是類(lèi)呢?在諸如C++這樣的語(yǔ)言中,對(duì)象由類(lèi)表述并進(jìn)行實(shí)例化,而類(lèi)實(shí)際上只是編譯器憑空所造的...[繼續(xù)閱讀]
這一節(jié)中,我們將對(duì)Java反射API(JavaReflectionAPI)加以介紹,這些API由java.lang.reflect包中的類(lèi)所支持。如其名所示,反射(reflection)是一個(gè)類(lèi)或?qū)ο笞晕覚z查的一種能力。反射使得Java代碼可以查看一個(gè)對(duì)象(更確切地說(shuō),是查看對(duì)象的類(lèi)),并確定...[繼續(xù)閱讀]
從概念上說(shuō),線(xiàn)程(thread)是程序中的一個(gè)控制流。線(xiàn)程有些類(lèi)似于我們熟悉的進(jìn)程(process)概念,其區(qū)別在于同一個(gè)應(yīng)用中的多個(gè)線(xiàn)程會(huì)共享許多相同的狀態(tài),特別是它們運(yùn)行于同一個(gè)地址空間。這與一個(gè)高爾夫球道并無(wú)不同,許多高爾夫...[繼續(xù)閱讀]
applet是內(nèi)嵌式的Java應(yīng)用,它們可以基于命令自行啟動(dòng)和停止。applet可能會(huì)要求啟動(dòng)和停止任意次。支持Java的Web瀏覽器通常會(huì)在顯示applet時(shí)將其啟動(dòng),而且當(dāng)用戶(hù)切換到另一個(gè)頁(yè)面或者(從理論上說(shuō))用戶(hù)滾動(dòng)applet以至于超出可視區(qū)之外...[繼續(xù)閱讀]