目錄
一、成員變量和局部變量? ? ? ? ? ? ??
1.定義
2.區別
(1)相同
(2)不同
二、方法和構造方法
1.定義
2.構造方法細節
3.方法重載
一、成員變量和局部變量? ? ? ? ? ? ??
1.定義
(1)成員變量是指在類體內,方法體外的變量。格式如下:
[訪問權限修飾符]? [修飾符]? 數據類型? 變量名。
(2)局部變量是指在方法體內的變量(方法的形參也屬于局部變量)。方法體包括成員方法、構造方法、代碼塊。格式如下:
數據類型? 變量名。
2.區別
(1)相同
成員變量和局部變量都可以使用java中的任意數據類型。
(2)不同
(1)賦值:成員變量可以不用初始賦值,java會為其默認賦值。局部變量需要初始賦值,不會被默認賦值。
(2)作用域:成員變量作用于整個類體,可以被成員方法、構造方法、代碼塊進行訪問。局部變量只能作用于所在的代碼塊(成員方法、構造方法也可以看成代碼塊)內。
(3)生命周期:成員變量在創建對象時創造,對象被回收時被銷毀。? ? ? 局部變量在調用方法時創造,方法執行完銷毀。
二、方法和構造方法
1.定義
(1)方法又稱成員方法,用來描述事物的行為。定義在類體中。格式如下:
[訪問權限修飾符]? [修飾符]? ?返回值類型? ?方法名( [參數列表]) {
方法體語句;
[return 返回值]
}
(2) 構造方法用來初始化對象,方法名和類名相同,且沒有返回值,無需void進行修飾。格式如下:
[訪問權限修飾符] ?類名([參數列表]){
方法體語句;
}
2.構造方法細節
(1)每個類默認都有一個無參構造方法。在前面有提到java會給成員變量默認賦值,實際上就是創建對象時,無參構造方法初始化對象的操作。
默認賦值根據數據類型會有所不同:
引用類型:NULL;? ? ?整數類型:0;? ? ? ? 浮點型:0.0;? ? ? ? 布爾型:false;? ? ? ? ?字符型:‘ ’;
(2)當在類中定義有參的構造方法后,默認的無參構造方法就會消失,如果需要就需要顯示定義出來。
(3)一個類中可以有多個構造方法。這與方法重載有關。
3.方法重載
同一個類中出現了相同的名字,但是參數不同的多個方法。
當多個方法名字相同時:若參數數量不同,則根據數量區分方法;若參數數量相同,則可根據參數類型區分方法,若數量和類型均相同,則可根據順序區分方法。
總結下來就是,參數不同可分為三種不同:數量不同、類型不同、順序不同。
在調用時,會根據不同的參數調用對應的方法。
注意:方法的重載和方法的返回值類型沒有任何關系。(因為Java 編譯器在調用方法時,?根據方法名和參數列表來確定具體調用哪個方法。返回值類型在調用時無法幫助編譯器區分方法,因此不能作為重載條件。)