java 建構函式可以寫業務程式碼?
- 2022-12-07
構造方法就是初始化這個物件的時候呼叫,可不可以寫業務程式碼,這個沒有限制的
有些時候我們建立一個物件,又必須給某些屬性或者說欄位賦值的時候,那麼就可以在構造方法裡進行賦值
super();
是表示呼叫父類的構造方法(函式),是預設的
你可以把它刪除掉,編譯器會自動在構造方法第一條語句增加這個的,
class反編譯過來,構造方法的第一條語句也會是super();
請採納哈。
可以,因為每個類都有一個無引數的預設建構函式
比如
class c{}
則c c=new c();是可以執行的
因為其中有個預設的無引數建構函式
但是如果是下面的情況則不能這樣用
比如
class c{
public c(int i){}
}
這樣c c=new c();是錯誤的,因為已經有了建構函式,則不能再使用預設構造函數了。。所謂預設建構函式,就是在預設狀態下(無建構函式)可以被使用的。
當然你也可以如果在上面的情況下,你可以寫出無參建構函式。(當然這就不是預設構造函數了)
class c{
public c(){}
public c(int i){}
}
建構函式一般不寫業務程式碼。
首先,建構函式是在這個類每次初始化都會被呼叫的,想想什麼業務邏輯需要這個類每次初始化都被呼叫一次?
如果遇到這樣的業務邏輯(比如載入配置檔案),一般都是在類內部定義一個static{}塊。
這麼寫的程式碼在個別時候也能執行,但很不靠譜吧