多型性是面向物件程式設計的重要特性之一。 多型性分為兩種:靜態多型和動態多型。 方法過載用於事項靜態多型性。 過載方法: 對於類的方法,如果有兩個方法的方法名相同,但引數不一致,那麼可以說,一個方法是另一個方法的過載方法。 過載方法必須滿足以下條件:(只記住前兩條就可以) 1.方法名必須相同;
2.方法的引數型別、個數至少有一項不同;
3.方法的返回型別可以不同;
4.方法的修飾符可以不相同。 只有對不同的資料完成基本相同的任務的方法才用方法過載,使用方法過載的優點是: 1.不必對相同的操作使用不同的方法名;
2.有助於更輕鬆的理解和除錯程式碼;
3.更易於維護程式碼。 構造方法必須滿足以下語法規則:
1.方法名必須與類名相同;
2.不要宣告返回型別。 當類中沒有定義構造方法時將使用預設的構造方法。 this關鍵字----- this是一個引用,該引用始終指向程式物件本身。 this的作用: 1.區分變數;
2.呼叫過載的構造方法。 用this語句來呼叫其它的構造方法時,必須遵守以下語句規則:
假如在一個構造方法中使用了this語句,那麼他必須作為構造方法的第一條語句(註釋的語句除外); 只能在一個構造方法中用this語句來呼叫類的其它的構造方法,而不能在實力方法中用this語句來呼叫類的構造方法; 只能用this語句來呼叫其它構造方法,而不能透過方法名來直接呼叫構造方法。
static關鍵字----- 用static修飾的成員變量表示靜態變數,可以直接透過類名來訪問; 用static修飾的成員方法表示靜態方法,可以直接透過類名來訪問; 用static修飾的程式程式碼塊表示靜態程式碼塊,當Java虛擬機器載入類時就會執行該程式碼塊。
被static所修飾的成員變數和成員方法表明該成員歸某個類所有,它不依賴於類的特定例項,被類的所有例項所共享。 靜態變數和例項變數的區別如下:
靜態變數在記憶體中只有一個複製,執行時Java虛擬機器只為靜態變數分配一次記憶體,在載入類的過程中完成靜態變數的記憶體分配。
可以直接透過類名訪問靜態變數,也可以透過例項來訪問靜態變數。
對於例項變數,每建立一個例項,就會為例項變數分配一次記憶體,例項變數可以在記憶體中有好幾個複製,每個複製屬於特定的例項,互不影響。
靜態方法可以訪問的內容: 因為靜態方法不需要透過它所屬的類的任何例項就會被呼叫,因此在靜態方法中不能使用this關鍵字,也不能直接訪問所屬類的例項變數和例項方法,但是可以直接訪問所屬類的靜態變數和靜態方法。
例項方法可以訪問的內容: 如果一個方法沒有被static修飾,那麼它就是例項方法,在例項方法中可以直接訪問所屬類的靜態變數、靜態方法、例項變數和例項方法。
static程式碼塊----- 在Java虛擬機器載入類時就會執行這些靜態程式碼塊(即先於main方法被執行),如果在類中包括多個靜態程式碼塊,那麼Java虛擬機器將按照它們在類中出現的先後順序執行它們,每個靜態程式碼塊只會執行一次。
多型性是面向物件程式設計的重要特性之一。 多型性分為兩種:靜態多型和動態多型。 方法過載用於事項靜態多型性。 過載方法: 對於類的方法,如果有兩個方法的方法名相同,但引數不一致,那麼可以說,一個方法是另一個方法的過載方法。 過載方法必須滿足以下條件:(只記住前兩條就可以) 1.方法名必須相同;
2.方法的引數型別、個數至少有一項不同;
3.方法的返回型別可以不同;
4.方法的修飾符可以不相同。 只有對不同的資料完成基本相同的任務的方法才用方法過載,使用方法過載的優點是: 1.不必對相同的操作使用不同的方法名;
2.有助於更輕鬆的理解和除錯程式碼;
3.更易於維護程式碼。 構造方法必須滿足以下語法規則:
1.方法名必須與類名相同;
2.不要宣告返回型別。 當類中沒有定義構造方法時將使用預設的構造方法。 this關鍵字----- this是一個引用,該引用始終指向程式物件本身。 this的作用: 1.區分變數;
2.呼叫過載的構造方法。 用this語句來呼叫其它的構造方法時,必須遵守以下語句規則:
假如在一個構造方法中使用了this語句,那麼他必須作為構造方法的第一條語句(註釋的語句除外); 只能在一個構造方法中用this語句來呼叫類的其它的構造方法,而不能在實力方法中用this語句來呼叫類的構造方法; 只能用this語句來呼叫其它構造方法,而不能透過方法名來直接呼叫構造方法。
static關鍵字----- 用static修飾的成員變量表示靜態變數,可以直接透過類名來訪問; 用static修飾的成員方法表示靜態方法,可以直接透過類名來訪問; 用static修飾的程式程式碼塊表示靜態程式碼塊,當Java虛擬機器載入類時就會執行該程式碼塊。
被static所修飾的成員變數和成員方法表明該成員歸某個類所有,它不依賴於類的特定例項,被類的所有例項所共享。 靜態變數和例項變數的區別如下:
靜態變數在記憶體中只有一個複製,執行時Java虛擬機器只為靜態變數分配一次記憶體,在載入類的過程中完成靜態變數的記憶體分配。
可以直接透過類名訪問靜態變數,也可以透過例項來訪問靜態變數。
對於例項變數,每建立一個例項,就會為例項變數分配一次記憶體,例項變數可以在記憶體中有好幾個複製,每個複製屬於特定的例項,互不影響。
靜態方法可以訪問的內容: 因為靜態方法不需要透過它所屬的類的任何例項就會被呼叫,因此在靜態方法中不能使用this關鍵字,也不能直接訪問所屬類的例項變數和例項方法,但是可以直接訪問所屬類的靜態變數和靜態方法。
例項方法可以訪問的內容: 如果一個方法沒有被static修飾,那麼它就是例項方法,在例項方法中可以直接訪問所屬類的靜態變數、靜態方法、例項變數和例項方法。
static程式碼塊----- 在Java虛擬機器載入類時就會執行這些靜態程式碼塊(即先於main方法被執行),如果在類中包括多個靜態程式碼塊,那麼Java虛擬機器將按照它們在類中出現的先後順序執行它們,每個靜態程式碼塊只會執行一次。