本日學習:
—類別的進階認識—
建構子
- 可視為一種特殊的函數
- 建構子名稱需要和類別相同
- 語法:public/private 類別名稱(型別 引數){程式敘述;}
- 建立 private/public 的規則和前述函數成員相同
- 沒有回傳值
- 建立物件時便會呼叫並執行,利於設立物件的初值
- 不能加上 void
- 也可以多載,一樣利用引數的個數、型別
- 透過 this() 在一個建構子內呼叫另一個建構子,不能出現另一個建構子的名稱
-
this 必須放在第一行
- 建構子可省略,這時以預設的 public 類別名稱(){} 來使用
- 名稱和類別相同
- 沒有引數
- 不做任何事(沒有敘述)
- 如果有其他設定好的建構子,便不會再提供預設的建構子
實例變數與實例函數
- 由類別建立的物件稱為實例
- 由實例(物件)存取的變數就稱為實例變數
- 由實例(物件)呼叫的函數稱為實例函數
- 存於不同記憶體,因此若更改其一物件,另一物件的變數不會跟著改變
-
需要先建立物件,再利用物件呼叫
類別變數
- 所有物件共享,沒有產生物件也可以使用
- 存於相同記憶體空間
- 一樣在類別中宣告,但在變數前要加上修飾子 static,如:private static double pi = 3.14;
類別函數
- 一樣加修飾子 static,就會變成類別函數
- 定義完成後,可以這麼呼叫它:類別名稱.show_count();
- 可以在沒有物件的情況下直接呼叫
- 限制:不可存取實例變數與函數、不能使用 this()
看回 public static void main(String[] args){}:
- main() 變成類別函數
- 這些函數都是由其所屬的類別與類別的外部直接呼叫,因此需加上 public static