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