1. 程式人生 > >201711671118《Java程式設計》第四章總結

201711671118《Java程式設計》第四章總結

4.1面向物件的三個特性

封裝性,多型性,繼承性。

4.2 類

①類的程式設計風格:

類名、介面名用大駝峰命名法。

變數名、方法名用小駝峰命名法。

類名最好容易識別、見名知意。

②成員變數

成員變數的有效範圍:成員變數在整個類內都有效,其有效性與其宣告位置無關。

對成員變數的操作應該放在方法中。

程式設計風格:

一行只宣告一個變數。

       將成員變數的宣告寫在同一個地方。

③區域性變數

       區域性變數只在方法內有效,而且其宣告的位置有關。

       方法的引數在整個方法內有效,方法的區域性變數在其宣告位置之後有效。

④區別成員變數和區域性變數

       如果區域性變數的名字與成員變數的名字相同,則成員變數被隱藏。想要呼叫被隱藏的成員變數,使用關鍵字this。

       成員變數有預設值(其型別中的0),區域性變數沒有預設值。

4.3構造方法與物件的建立

①類的構造方法與它所在的類的名字完全相同,而且沒有型別。一個類中可以有若干個構造方法。但必須保證它們的引數不同。

②使用new運算符合類的構造方法為宣告的物件分配變數。

③空物件不能使用,因為它還沒有任何“實體”。

④new運算子只能和類的構造方法進行運算,運算的最後結果是一個十六進位制的數,這個數稱為物件的引用。new運算子在計算出這個引用之前,首先給類中的成員變數分配記憶體空間,然後執行構造方法中的語句,然後計算出引用,物件誕生。

⑤物件的引用存在棧中,物件的實體存在堆中。

⑥垃圾收集機制:該機制會週期性地檢測某個實體是否不再被任何物件所擁有,如果發現這樣的實體,就釋放該實體佔有的記憶體。如果想立即進行垃圾收集操作,讓System類呼叫gc()方法。

⑦JAVA中沒有析構方法,通過垃圾收集機制釋放沒有被引用的實體佔有的記憶體。

4.4類與程式的基本結構

①一個JAVA應用程式(也稱為一個工程)由若干個類所構成。

②JAVA應用程式有一個主類(含有main方法),JAVA應用程式從主類的main方法開始執行。

③提倡在一個JAVA原始檔中只編寫一個類。

4.5 引數傳值

       ①方法中引數變數是被呼叫變數的拷貝。

       ②對於基本資料型別的引數,向該引數傳遞的值的級別部落格園高於該引數的級別。

       ③JAVA的引用型資料包括陣列、介面、物件。

       ④當引數是引用型別時候,“傳值”傳遞的是變數中存放的引用,而不是變數所引用的實體。

       ⑤可變引數:

       可變引數是指在宣告方法時不給出引數列表中從某項開始直到最後一項引數的名字和個數,但是這些引數的型別必須相同。可變引數使用“...”表示若干個引數,這些引數的型別必須相同。如public void f(int a,int ...x),可變引數必須為最後一個引數。引數代表可以通過下標運算來表示引數列表的具體函式,即x[0],x[1], ...,x[m-1]分別表示第一個至第m個引數。

4.7 例項成員和類成員

①成員變數可以細分為例項變數和類變數,方法也可以分為例項方法和類方法。用static來修飾類成員。

②例項變數和類變數的區別:                        

       不同物件的實變數互不相同。

       所有物件共享類變數。

通過類名直接訪問類變數。      

③例項方法和類方法的區別

       類方法不可以呼叫例項變數,因為在類建立物件之前,成員變數還沒有分配記憶體。              例項方法中不僅可以操作例項變數,也可以操作類變數。

       如果一個方法不需要操作類中的任何例項變數,就可以滿足程式需要,可以將方法設計為一個static方法。

4.9 this關鍵字

       this是JAVA的一個關鍵字,表示某個物件。this可以出現在例項方法,但是不可以出現類方法中。

4.10 包

①包名的目的是有效地區分名字相同的類,不同JAVA原始檔中的兩個類名字相同時,可以通過隸屬不同包來區分。

       ②package語句為JAVA原始檔的第一條語句,如果原始檔省略了package語句,原始檔中所定義命名的類被隱含地認為是無名包的一部分,只要這些類的位元組碼被存放在相同的目錄中,那麼它們就屬於同一個包,但沒有包名。

4.11 import語句

       ①import語句寫在package語句和類語句之間。

       ②系統自動為程式匯入java.lang包(System類,Math類等)

       ③如果沒用import 語句引入包中的類,也可以直接帶有包名所有該類。

       ④引入整個包的類會增加編譯時間,但是不會影響程式執行的效能。

       ⑤無名包在同一個資料夾中,則它們的類可以互相使用,無名包可以通過import語句呼叫有名包的類,但是有名包無法呼叫無名包的類。

4.12訪問許可權

①訪問修飾符:private、protected、public。

②類中的例項方法總是可以操作類變數和例項變數,類方法總是可以操作該類的類變數,與訪問限制符沒有關係。

       ③不用private、public、protected修飾符修飾的成員變數和方法被稱為友好變數和友好方法。

       ④友好變數和友好方法只能由同一個包的物件引用。

       ⑤不能用protected、private修飾類。

       ⑥訪問級別(由高到低):public、protected、友好的、public