資源描述:
《java經(jīng)典學(xué)習(xí)筆記》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Java學(xué)習(xí)筆記(OO部分)1.類僅僅創(chuàng)建了一種新的數(shù)據(jù)類型,類就是對(duì)象的模板,對(duì)象就是類的一個(gè)實(shí)例,對(duì)象和實(shí)例可以相互使用。2.在類中,沒有用Private標(biāo)明的變量成為實(shí)例變量,每一個(gè)對(duì)象都具有自己獨(dú)立的實(shí)例變量,即任何一個(gè)對(duì)象將本身的實(shí)例變量值改變之后,并不影響其他對(duì)象的實(shí)例變量值。3.在聲明一個(gè)對(duì)象時(shí),一般分為兩步:首先聲明某類類型的變量,改變量?jī)H僅可以用來(lái)引用該類的一個(gè)實(shí)例;接著用new運(yùn)算符創(chuàng)建一個(gè)對(duì)象的實(shí)際物理拷貝,并且把對(duì)于該對(duì)象的引用賦給改變量,注意這里賦給改變量的是該對(duì)象的內(nèi)存地址。4.類和對(duì)象的區(qū)別:類是一種數(shù)據(jù)類型
2、,用于創(chuàng)建新的對(duì)象,是一個(gè)邏輯框架,并不占有內(nèi)存空間;而對(duì)象是類的實(shí)例,占有物理內(nèi)存。5.給對(duì)象的引用變量賦值:例如,B1為類Box的對(duì)象,而B2為類Box的引用變量,如果將B1賦給B2,那么最后的結(jié)果是它們共同指向同一個(gè)對(duì)象實(shí)體,這時(shí),對(duì)B1或者B2所應(yīng)用對(duì)象的改變都會(huì)引起另一方所引用對(duì)象的變化。6.類的構(gòu)造函數(shù)的作用是對(duì)對(duì)象的變量進(jìn)行初始化,它在對(duì)象建立之后,new運(yùn)算完成之前被調(diào)用。另外,構(gòu)造函數(shù)可以重載,當(dāng)建立一個(gè)對(duì)象時(shí),可以根據(jù)參數(shù)的順序、類型、以及有無(wú)參數(shù)來(lái)調(diào)用相應(yīng)的構(gòu)造函數(shù)。7.關(guān)鍵字this的作用是可以在一個(gè)類方法中調(diào)用正
3、在使用該方法的對(duì)象的引用,最常見的用法是可以使方法的自變量名和類的實(shí)例變量名相同,進(jìn)而解決在方法體內(nèi)后者被前者覆蓋的問(wèn)題。8.Java里面的垃圾回收機(jī)制:當(dāng)一個(gè)對(duì)象沒有被任何變量引用的時(shí)候,該對(duì)象所占的內(nèi)存將會(huì)被自動(dòng)回收。如果在對(duì)象被回收之前要進(jìn)行一些特殊的操作,比如釋放該對(duì)象占用的特殊資源的時(shí)候,就要使用finalize()方法。在該方法中要指定該對(duì)象被銷毀前要執(zhí)行的操作。9.方法的重載:這是java實(shí)現(xiàn)多態(tài)性的一種機(jī)制。在類中,若干個(gè)方法可以有相同的名字,但是它們的參數(shù)有所不同,主要表現(xiàn)在:參數(shù)個(gè)數(shù)、類型上。當(dāng)要調(diào)用某方法時(shí),系統(tǒng)會(huì)根
4、據(jù)調(diào)用時(shí)參數(shù)的類型、個(gè)數(shù)等信息調(diào)用相應(yīng)的方法。注意,方法的重載和它們的返回類型無(wú)關(guān)。在方法的重載中,有時(shí)會(huì)發(fā)生隱含的數(shù)據(jù)類型轉(zhuǎn)換。例如,當(dāng)參數(shù)類型為int型,而又沒有自變量為該類型的方法,卻有double類型自變量方法,這時(shí)該參數(shù)就會(huì)自動(dòng)被轉(zhuǎn)換為double型。10.對(duì)象可以作為一個(gè)參數(shù)在方法中加以傳遞,這種情況一般應(yīng)用在構(gòu)造函數(shù)中,可以利用一個(gè)已經(jīng)存在的對(duì)象創(chuàng)建一個(gè)新的對(duì)象。11.java中的參數(shù)傳遞:當(dāng)傳遞一個(gè)簡(jiǎn)單類型的參數(shù)時(shí),采用的是按值傳遞方式,即方法體內(nèi)對(duì)自變量的操作并不能改變方法外該參數(shù)的值;但是當(dāng)傳遞是一個(gè)對(duì)象的時(shí)候,方法的
5、自變量就會(huì)接受一個(gè)該對(duì)象的一個(gè)引用,它們共同指向同一個(gè)對(duì)象,這時(shí),方法體內(nèi)對(duì)自變量的任何操作都會(huì)引起該對(duì)象的變化。12.類成員的訪問(wèn)控制:public類型的成員在任何地方均可以使用;private類型的成員只能夠在類的內(nèi)部使用;protected類型的成員可以在包內(nèi)以及該類所有的子類中使用;無(wú)修飾符的成員可以在本類所在的包內(nèi)使用。13.類的靜態(tài)成員的使用:static關(guān)鍵字可以用來(lái)聲明類的靜態(tài)成員,這時(shí)這些成員可以為所有的類實(shí)例所共享。這些成員的使用可以不依賴于該類的實(shí)例。類中一般要有一個(gè)static塊,可以用來(lái)對(duì)靜態(tài)變量進(jìn)行初始化,而且
6、只有在該類在第一次被加載的時(shí)候該塊內(nèi)的初始化代碼才會(huì)被執(zhí)行(而且是首先執(zhí)行)??梢栽陬惖耐饷嬷苯佑妙惷忘c(diǎn)運(yùn)算符對(duì)這些靜態(tài)成員進(jìn)行操作。對(duì)于靜態(tài)方法,我們要遵循如下的使用規(guī)則:它們僅僅只能調(diào)用類中的靜態(tài)成員,而且不能使用super和this關(guān)鍵字。1.關(guān)鍵字final的作用:當(dāng)一個(gè)變量聲明為一個(gè)final類型的變量的時(shí)候,改變量就不能進(jìn)行更改。所以在聲明一個(gè)final型的變量的時(shí)候一定要對(duì)其進(jìn)行初始化。如果一個(gè)方法被聲明為final型,那么該方法就不能被其所屬類的子類覆蓋掉。一個(gè)類被final修飾的時(shí)候,該類就不能被繼承。2.注意,數(shù)組均
7、是被作為一個(gè)對(duì)象來(lái)使用的,它們都有一個(gè)共同的變量:length,即數(shù)祖長(zhǎng)度。3.內(nèi)部類的使用:在一個(gè)類的內(nèi)部可以聲明一個(gè)內(nèi)部類;內(nèi)部類在外部類的外面是不可見的,而且內(nèi)部類的成員變量只能在內(nèi)部類內(nèi)部使用,外部類的成員不能對(duì)它們進(jìn)行任何操作;但是內(nèi)部類可以使用外部類的所有成員。另外,還可以在方法體內(nèi),甚至循環(huán)體內(nèi)使用內(nèi)部類。4.在一個(gè)超類中聲明為private的成員只能被其本身引用,其子類雖然可以繼承該成員,卻沒有權(quán)利訪問(wèn)它(除非使用關(guān)鍵字super)。5.一個(gè)超類的引用變量可以被賦予一個(gè)其子類對(duì)象的引用,此時(shí),超類的引用變量只能訪問(wèn)超類中已
8、經(jīng)定義的成員。此時(shí),超類的引用所訪問(wèn)的成員均為其子類的對(duì)應(yīng)成員(因?yàn)樽宇愐呀?jīng)將超類實(shí)現(xiàn)了進(jìn)一步的擴(kuò)充,java可以利用此機(jī)制實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性,參考21)。6.super有兩種使用方式:第一種