資源描述:
《gzd java基礎(chǔ)只是.doc》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、1、靜態(tài)變量和實(shí)例變量的區(qū)別今在語(yǔ)法丄的不同:靜態(tài)變量前需要用static修飾,而實(shí)例變量不用9在運(yùn)行時(shí)的不同:①靜態(tài)變量隨著類(lèi)的加載而加載,此時(shí)靜態(tài)變量(類(lèi)變量)就會(huì)被分配內(nèi)存空問(wèn),也就可以使用了;而實(shí)例變量則需要?jiǎng)?chuàng)建實(shí)例對(duì)象,才會(huì)在內(nèi)存小分配空間,才可以使用②在使用方法上,類(lèi)變量通過(guò)“類(lèi)名+變量名”的方式調(diào)用,而實(shí)例變量通過(guò)“對(duì)象名+變量名”的方式調(diào)用。2、int和integer的區(qū)別9在類(lèi)型上的不同:int是八個(gè)基本數(shù)據(jù)類(lèi)型之一(byte、short>int、long>float、double、char、b
2、oolean),Kuinteger是int的封裝類(lèi)!9int的默認(rèn)值是0,integer的默認(rèn)值是null3、math的ceil、floor、round三個(gè)方法的不同之處9ceil翻譯過(guò)來(lái)就是天花板的意思,所以表示向上取證,math.Ceil(11.2)的結(jié)果就是129floor是地板的意思,所以表示向下取整Ground是“四舍五入”的意思4、Overload和Oveiride的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型?9區(qū)別:overload表示重載,一個(gè)類(lèi)屮可以有相同的方法名,但是參數(shù)不能相同
3、,比如參數(shù)的類(lèi)型,參數(shù)的個(gè)數(shù)等等。Override表示重寫(xiě),在繼承屮子類(lèi)定義一個(gè)和父類(lèi)完全相同的方法,所以調(diào)用時(shí)候直接調(diào)用子類(lèi)方法,即重寫(xiě)、復(fù)寫(xiě),這其實(shí)也是多態(tài)的一種表現(xiàn)?。∪绻割?lèi)方法是private,那么子類(lèi)的這個(gè)方法就不存在覆蓋的問(wèn)題了,其實(shí)完全可以當(dāng)做一個(gè)全新的方法5、構(gòu)造器Constructor是否可以被重載(overload)?重寫(xiě)(override)?9構(gòu)造器不能被繼承,所以不能被override,但是可以被overload,可以看到j(luò)ava源碼屮很多接口、類(lèi)都有多個(gè)構(gòu)造器?。?、抽象類(lèi)和普通類(lèi)唯一
4、的區(qū)別是什么9唯一的區(qū)別就是抽象類(lèi)不能創(chuàng)建實(shí)例而普通類(lèi)可以,抽象類(lèi)可以有抽象方法但是普通類(lèi)不可以有!7、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么9靠的是父類(lèi)或接口定義的引用變量可以指向子類(lèi)或具體實(shí)現(xiàn)類(lèi)的實(shí)例對(duì)象,而程序調(diào)用的方法在運(yùn)行期才動(dòng)態(tài)綁定,就是引用變量所指向的具體實(shí)例對(duì)象的方法,也就是內(nèi)存里正在運(yùn)行的那個(gè)對(duì)象的方法,而不是引用變量的類(lèi)型屮定義的方法8、什么是內(nèi)部類(lèi)?StaticNestedClass和InnerClass的不同內(nèi)部類(lèi)就是在一個(gè)類(lèi)的內(nèi)部定義的類(lèi),內(nèi)部類(lèi)屮不能定義靜態(tài)成員(靜態(tài)成員不是對(duì)彖的特性,只是為
5、了找一個(gè)容身Z處,所以需要放到一個(gè)類(lèi)屮而已,這么一點(diǎn)小事,你還要把它放到類(lèi)內(nèi)部的一?個(gè)類(lèi)屮,過(guò)分了啊!提供內(nèi)部類(lèi),不是為讓你干這種事情,無(wú)聊,不讓你干。我想可能是既然靜態(tài)成員類(lèi)似c語(yǔ)言的全局變量,而內(nèi)部類(lèi)通常是用于創(chuàng)建內(nèi)部對(duì)象用的,所以,把“全局變量”放在內(nèi)部類(lèi)屮就是毫無(wú)意義的事情,既然是毫無(wú)意義的事情,就應(yīng)該被禁止),內(nèi)部類(lèi)可以直接訪(fǎng)問(wèn)外部類(lèi)小的成員變量,內(nèi)部類(lèi)可以定義在外部類(lèi)的方法外而,也可以定義在外部類(lèi)的方法體屮,如下所示:publicclassOuterintoutx=0:Innerlinnerl=new
6、Innerl();publicclassInner2〃在方法體內(nèi)部定義的內(nèi)部類(lèi){publicmethod(){out_x=3;}}Inner2inner2=newInner2();}publicclassInnerl〃在方法體外面定義的內(nèi)部類(lèi){}}在方法體外面定義的內(nèi)部類(lèi)的訪(fǎng)問(wèn)類(lèi)型可以是public,protecte,默認(rèn)的,private等4種類(lèi)型,這就好像類(lèi)屮定義的成員變量有4種訪(fǎng)問(wèn)類(lèi)型一樣,它們決定這個(gè)內(nèi)部類(lèi)的定義對(duì)其他類(lèi)是否可見(jiàn);對(duì)于這種情況,我們也可以在外面創(chuàng)建內(nèi)部類(lèi)的實(shí)例對(duì)象,創(chuàng)建內(nèi)部類(lèi)的實(shí)例對(duì)象吋,
7、一定要先創(chuàng)建外部類(lèi)的實(shí)例對(duì)象,然后用這個(gè)外部類(lèi)的實(shí)例對(duì)象去創(chuàng)建內(nèi)部類(lèi)的實(shí)例對(duì)象,代碼如下:Outerouter=newOuter();Outer.lnnerlinnerl=outer.newInnnerl();在方法內(nèi)部定義的內(nèi)部類(lèi)前面不能有訪(fǎng)問(wèn)類(lèi)型修飾符,就好像方法屮定義的局部變量一樣,但這種內(nèi)部類(lèi)的前面可以使用final或abstract修飾符。這種內(nèi)部類(lèi)對(duì)其他類(lèi)是不可見(jiàn)的其他類(lèi)無(wú)法引用這種內(nèi)部類(lèi),但是這種內(nèi)部類(lèi)創(chuàng)建的實(shí)例對(duì)彖可以傳遞給其他類(lèi)訪(fǎng)問(wèn)。這種內(nèi)部類(lèi)必須是先定義,后使用,即內(nèi)部類(lèi)的定義代碼必須出現(xiàn)在使
8、用該類(lèi)之前,這與方法屮的局部變量必須先定義后使用的道理也是一樣的。這種內(nèi)部類(lèi)可以訪(fǎng)問(wèn)方法體屮的局部變量,但是,該局部變量前必須加final修飾符。對(duì)于這些細(xì)節(jié),只要在eclipse寫(xiě)代碼試試,根據(jù)開(kāi)發(fā)工具提示的各類(lèi)錯(cuò)誤信息就可以馬上了解到。在方法體內(nèi)部還可以采用如下語(yǔ)法來(lái)創(chuàng)建一種匿名內(nèi)部類(lèi),即定義某一?接口或類(lèi)的子類(lèi)的同吋,還創(chuàng)建了該子類(lèi)的實(shí)例對(duì)象,無(wú)需為該子類(lèi)定義名稱(chēng):