建構函式中的變數初始化
建立Java 物件時,有兩種初始化實例變數的選項:
實例化宣告
class A { B b = new B(); }
建構子中的實例化
class A { B b; A() { b = new B(); } }
每種方法的優點:
相同行為:
編譯器會自動為任一方法產生等效的初始化程式碼,因此沒有功能差異。
可讀性:
有些開發人員喜歡第一種方法,因為它可以更直接地清楚地表明哪些變數正在初始化。
異常處理:
在第二種方法中,您可以在構造函數中使用異常處理來處理變數初始化期間潛在的錯誤。
初始化區塊:
除瞭如上所述,還可以使用初始化區塊來初始化變數。與欄位宣告類似,初始化區塊會自動放置在建構函式中。
{ a = new A(); }
延遲初始化:
如果初始化變數的成本很高,您可以透過設定它來選擇延遲初始化在僅在需要時建立物件的 getter 方法中。
ExpensiveObject o; public ExpensiveObject getExpensiveObject() { if (o == null) { o = new ExpensiveObject(); } return o; }
依賴關係管理:
為了增強依賴管理,請考慮避免使用 new 運算子直接實例化。相反,採用依賴注入,其中另一個類別或框架處理物件創建和依賴注入。
以上是Java 變數初始化:建構函式與宣告 – 哪個比較好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!