java中如何應對構造函式引數過多

2021-09-22 05:48:23 字數 827 閱讀 5493

我們在書寫乙個類的時候,常常會出現乙個類的屬性有很多,那麼就有可能存在這種情況,有一些屬性是必須存在的,但是有一些屬性是非必須的,根據實際業務來確定。那麼這種情況我們該怎麼處理類的建構函式呢?總不可能為每一種情況都來寫乙個建構函式吧?這樣**太冗餘了,在new物件的時候也容易出錯。

我們可以通過使用靜態內部類來比較優雅的處理這個問題。

public class student

}其中年齡和姓名是必須的,其他屬性是非必須的

為了減少**,這裡我將student類屬性的get和set方法省略了,只留了主體**,如下:

public class student

public student(bulider bulider)

//通過這個靜態內部類來構造student物件

public static class bulider

//通過方法來給student類的屬性賦值,注意,方法要返回builder本身,方便鏈式呼叫

java中建構函式

3,子父類中的建構函式。在對子類物件進行初始化時,父類的建構函式也會執行,那是因為子類的建構函式預設第一行有一條隱式的語句 super super 會訪問父類中空引數的建構函式。而且子類中所有的建構函式預設第一行都是super 為什麼子類一定要訪問父類中的建構函式。因為父類中的資料子類可以直接獲取。...

java中如何應對讀改寫場景

volatile可以確保資料及時重新整理到主存,但是對於讀改寫場景還是無能為力 舉個例子public class concurrenthashmapexample private static void processorders mapordersmap 複製 正確輸出應該是 複製 但是試著多執行...

Java中建構函式詳解

建構函式 建立構造物件時呼叫的函式。作用 可以給物件經行初始化。建立物件都必須要通過建構函式初始化 1.乙個類中如果沒有定義過建構函式,那麼該類中會有乙個預設的空引數建構函式。2.如果在類中定義了指定的建構函式那麼類中的預設建構函式就沒有了。3.建構函式可以有多個,用於對不同的物件進行針對性的初始化...