Java 建構函式
Java 建構函式 是一種特殊的類方法,用於在建立物件時初始化物件的屬性。它與類名相同,並且沒有返回值型別。
建構函式的作用:
- 為物件的屬性設定初始值
- 執行必要的初始化操作
- 提供建立物件的多種方式
建構函式的型別:
- 預設建構函式: 無引數的建構函式,如果使用者沒有明確定義建構函式,則 Java 編譯器會自動建立一個預設建構函式。
- 帶引數的建構函式: 可以為建構函式新增引數,以便在建立物件時傳入初始值。
示例:
public class Main {
int x;
// 預設建構函式
public Main() {
x = 5;
}
// 帶引數的建構函式
public Main(int y) {
x = y;
}
public static void main(String[] args) {
Main myObj1 = new Main(); // 呼叫預設建構函式
System.out.println(myObj1.x); // 輸出 5
Main myObj2 = new Main(10); // 呼叫帶引數的建構函式
System.out.println(myObj2.x); // 輸出 10
}
}
建構函式的注意事項:
- 建構函式不能被重寫。
- 建構函式不能被宣告為 abstract 或 final。
- 建構函式可以丟擲異常。
一些額外的說明:
可以使用建構函式來執行物件的初始化操作,例如:
- 開啟資料庫連線
- 載入配置檔案
- 註冊事件監聽器
可以使用多個建構函式來提供建立物件的多種方式,例如:
- 使用預設值建立物件
- 使用引數建立物件
- 使用克隆建立物件
Java 修飾符
Java 修飾符 用於控制類、屬性、方法和建構函式的訪問許可權和行為。它們可以分為兩組:
- 訪問修飾符:
- public: 意味著程式碼對所有類可訪問。
- private: 意味著程式碼只能在宣告的類內部訪問。
- default: 意味著程式碼只能在同一包中訪問。
- protected: 意味著程式碼在同一包和子類中可訪問。
- 非訪問修飾符:
- final: 意味著類不能被繼承,屬性和方法不能被重寫。
- static: 意味著屬性和方法屬於類,而不屬於物件。
- abstract: 意味著類不能用於建立物件,方法沒有主體,必須由子類提供。
- transient: 意味著在序列化包含它們的物件時,屬性和方法將被跳過。
- synchronized: 意味著方法一次只能由一個執行緒訪問。
- volatile: 意味著屬性的值不會在本地執行緒快取,總是從“主記憶體”讀取。
示例:
訪問修飾符:
// public類可以被任何類訪問
public class Main {
// private屬性只能在 Main 類內部訪問
private int x = 10;
// default方法只能在同一個包中訪問
void myMethod() {
System.out.println("This is a default method.");
}
// protected方法可以在同一個包和子類中訪問
protected void myProtectedMethod() {
System.out.println("This is a protected method.");
}
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj.x); // 錯誤,無法訪問私有屬性
myObj.myMethod(); // 可以訪問 default 方法
myObj.myProtectedMethod(); // 可以訪問 protected 方法
}
}
非訪問修飾符:
public class Main {
// final屬性不能被修改
final int y = 20;
// static方法可以在不建立物件的情況下訪問
static void myStaticMethod() {
System.out.println("This is a static method.");
}
// abstract方法沒有主體,必須由子類提供
abstract void myAbstractMethod();
public static void main(String[] args) {
// y = 30; // 錯誤,無法修改 final 屬性
myStaticMethod(); // 可以訪問 static 方法
// myAbstractMethod(); // 錯誤,無法直接呼叫抽象方法
}
}
// 子類繼承 Main 類並提供抽象方法的主體
class Child extends Main {
@Override
void myAbstractMethod() {
System.out.println("This is the implementation of myAbstractMethod.");
}
}
一些額外的說明:
- 可以使用多個修飾符來修飾類、屬性、方法和建構函式。例如,
public final
表示類是公開的並且不能被繼承。 - 修飾符是 Java 語言的重要組成部分,它們可以幫助您控制程式碼的訪問許可權和行為。
最後
為了方便其他裝置和平臺的小夥伴觀看往期文章:
微信公眾號搜尋:Let us Coding
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎 點贊、收藏、關注