接下來,想聊一些在學習 Java 中漸漸對物件導向設計的一些了解,那我會先從分享一下 Java 程式碼的結構,再去帶入其中物件導向 (Object Oriented) 設計的內涵。
第一步要了解 Java 中的變數 (variable) 。通常程式工程師在處理資料時,會需要把資料暫存到記憶體中,然而在電腦中記憶體位置會以一串16進制的數值作紀錄,如果每次存取都要去記那一串數值,在開發過程中會很不方便。而變數就像是一個標籤,可以為它取一個容易理解的名字,讓他指派到記憶體中的某個位址,這就能方便做資料的存取。
那該如何在 Java 中定義一個變數呢?可以參考以下範例:
// 宣告變數
資料型別 變數名稱;
int number;
String name;
// 賦值:指派數值給變數
變數名稱 = 值
number = 1;
name = "Jack"
// 可以同一行處理
資料型別 變數名稱 = 值
Java 中對變數的資料型別要求較為嚴格,必須於宣告時指定資料型別。
方法(Method) 的概念就如同數學的函式一般,只是將函式內部的數學運算,換成是了程式邏輯。方法需要在被調用時才會運行, 並可以將資料(稱為參數parameter)傳遞給方法內部使用,良好的使用與設計方法可以大幅減少重複的程式碼。
在 Java 中定義一個方法,相較於 Python 複雜了不少,一個method的組成分成:修飾符 (modifier)、返回類型 (return type)、名稱 (name)與參數列表 (formal parameter or parameter list)
// Java Method
修飾符 返回類型 方法名稱(參數資料型別 參數名稱,...){
//程式邏輯寫在這裡
...
return 返回值;
}
// 舉例
public int add(int a, int b){
return a+b;
}
修飾符 (modifier):
提供方法的開放與否、方法歸屬、修改與否等更多資訊設定,後面會再詳細說明,因不同類的修飾符可以同時修飾在同一個方法上,所以會有一個方法具有一個以上修飾符的情況。
返回類型 (return type):
定義了方法返回值的資料型別,其中 void
是代表這個方法不會有任何返回值。
方法名稱 (name):同變數名稱一樣,方便使用者呼叫。
參數列表 (parameter list):定義要傳入方法中的變數,宣告方式為 資料型別+參數名稱,不同參數以,
間隔即可。
Java 中 method 的唯一性是由 method 的 name + parameter type 來決定。換句話說,當我們有多個具有相同名稱但參數類型不同的 method 時,就可以視為不同的方法,會依照輸入的參數列表來決定要調用哪個方法,Java中這樣的特性稱為方法多載 (Method Overloading),舉例來說:接下來,想聊一些在學習 Java 中漸漸對物件導向設計的一些了解,那我會先從分享一下 Java 程式碼的結構,再去帶入其中物件導向 (Object Oriented) 設計的內涵。
第一步要了解 Java 中的變數 (variable) 。通常程式工程師在處理資料時,會需要把資料暫存到記憶體中,然而在電腦中記憶體位置會以一串16進制的數值作紀錄,如果每次存取都要去記那一串數值,在開發過程中會很不方便。而變數就像是一個標籤,可以為它取一個容易理解的名字,讓他指派到記憶體中的某個位址,這就能方便做資料的存取。
那該如何在 Java 中定義一個變數呢?可以參考以下範例:
// 宣告變數
資料型別 變數名稱;
int number;
String name;
// 賦值:指派數值給變數
變數名稱 = 值
number = 1;
name = "Jack"
// 可以同一行處理
資料型別 變數名稱 = 值
Java 中對變數的資料型別要求較為嚴格,必須於宣告時指定資料型別。
方法(Method) 的概念就如同數學的函式一般,只是將函式內部的數學運算,換成是了程式邏輯。方法需要在被調用時才會運行, 並可以將資料(稱為參數parameter)傳遞給方法內部使用,良好的使用與設計方法可以大幅減少重複的程式碼。
在 Java 中定義一個方法,相較於 Python 複雜了不少,一個method的組成分成:修飾符 (modifier)、返回類型 (return type)、名稱 (name)與參數列表 (formal parameter or parameter list)
// Java Method
修飾符 返回類型 方法名稱(參數資料型別 參數名稱,...){
//程式邏輯寫在這裡
...
return 返回值;
}
// 舉例
public int add(int a, int b){
return a+b;
}
修飾符 (modifier):
提供方法的開放與否、方法歸屬、修改與否等更多資訊設定,後面會再詳細說明,因不同類的修飾符可以同時修飾在同一個方法上,所以會有一個方法具有一個以上修飾符的情況。
返回類型 (return type):
定義了方法返回值的資料型別,其中 void
是代表這個方法不會有任何返回值。
方法名稱 (name):同變數名稱一樣,方便使用者呼叫。
參數列表 (parameter list):定義要傳入方法中的變數,宣告方式為 資料型別+變數名稱,不同變數以 , 間隔即可。
Java 中 method 的唯一性是由 method 的 name + parameter type 來決定。換句話說,當我們有多個具有相同名稱但參數類型不同的 method 時,就可以視為不同的方法,會依照輸入的參數列表來決定要調用哪個方法,Java中這樣的特性稱為方法多載 (Method Overloading),舉例來說:
// 建立接收兩個整數相加的方法
public int add(int a, int b){
return a+b;
}
// 建立接收兩個浮點數相加的方法
public float add(float a, float b){
return a+b;
}
// 調用名字為 add() 的方法,會依據輸入資料型別,選用適用的方法
System.out.println(add(1,1));
System.out.println(add(1.5f, 1.5f));
// Out:
// 2
// 3