一、類的私有成員與公共成員
-
私有成員
如果沒有一個方法去限制對類中成員的訪問,則可能會造成錯誤的輸入,而爲了防止這種情況的發生,Java中提供了私有成員訪問控制修飾符private
,在類的成員聲明之前加上private
,則無法從類的外部訪問到該類的內部成員,而只能被該類的自身訪問和修改,而不可以被其他類訪問。從而達到了保護數據的目的。 -
公共成員
public
公共訪問控制符,使得該成員可以被其他的類訪問。 -
缺省訪問控制符
若在類成員的前面不加任何訪問控制符,則該成員具有缺省的訪問控制特性,這種缺省訪問控制權表示這個成員只可以被同一個包中的類訪問,不可以被其他包的類所使用的。
二、方法的重載
方法的重載時實現“多態”的一種方法。什麼叫重載,就是一個類中具有相同名稱的多個方法,這多個的同名方法參數個數不同,或者參數類型不同,則這些同名的方法則具有不同的功能。
例如:
public class demo{
public void printf(int num){
System.out.println(num);
}
public void printf(float num){
System.out.println(num);
}
public void printf(int num1, int num2){
System.out.println(num1+num2);
}
}
三、構造方法
-
構造方法簡介
a.構造方法是一種比較特殊的方法,它是對象在創建時候就是執行的一種方法。它沒有返回值,但是不需要用void
去進行修飾。因爲一個類的構造方法返回值類型就是類本身。 構造方法在定義之後,創建對象實例的時候,就回自動調用它,因此構造方法不需要在程序中直接調用。b.構造方法的特性:
- 構造方法的方法名和類名相同。
- 構造方法沒有返回值,且不能寫
void
。 - 構造方法的主要作用是完成類對象的初始化工作。
- 構造方法一般使用
new
來調用。 - 創建一個類的對象的時候,Java會自動調用類的構造方法去完成初始化工作。
-
默認構造方法
一般來說,如果類中沒有定義構造方法,類會提供一個默認的構造方法。程序創建對象的時候會自動調用默認構造方法。
注意:若果在一個類之中,我們已經定義了一個有參數的構造方法,但是卻調用五參數的構造方法去創建對象的時候,此時編譯就不會通過。 -
構造方法的重載
我們可以對構造函數進行重載。public class demo{ int height; demo(){//默認無參構造函數 } demo(int height){//重載構造函數 this.height = height; } }
四、靜態成員
static
修飾的成員被稱爲靜態成員,也被稱爲類成員,不用static
修飾的成員稱爲實例成員。
-
實例成員
類定義中成員變量或者成員方法沒有被static
修飾的,就是實例成員。 -
靜態成員
使用static
修飾的成員變量稱爲靜態變量,也就是類變量。所有對象都是享用同一塊內存單元。
並且,靜態變量不需要實例化就可以使用。
使用方法:類名.靜態變量名; 對象名.靜態變量名;
-
靜態方法
與靜態成員類似的是類的靜態方法。
static方法中,不能使用this和super,因爲this是代表調用該方法的對象,但是現在靜態方法不需要使用對象來進行調用。而super也是與this類似,是屬於對象範疇的東西,但是靜態方法是屬於類範疇的東西。 -
靜態初始化器
靜態初始化器由關鍵字static
修飾的一隊花括號"{}"括起來的語句塊,它的作用於構造方法有些相似,都是用來初始化工作的。
靜態初始化器和構造方法不同的:a.構造方法是對每個新創建的對象進行初始化,但是靜態初始化器是對類自身進行初始化。
b.構造方法是在使用new
運算符創建新對象的時候由系統自動執行,但是靜態初始化器一般不能夠由程序調用,它使用所屬的類被加載入內存調用執行的。
c.用new
運算符創建多少新對象,構造方法就會被調用多少次,但是靜態初始化器卻只是類在被加載入內存時只執行一次,與創建了多少的對象無關。