-
1 # 渴望遠方的小小鳥
-
2 # 方方方的偽宅
應該是根據你的需要來進行構造,如果你不用的話,構造器不需要也沒什麼關係,只要保留預設的無參構造器即可。
從面向物件的角度來看,構造器不是必須存在的,只有在構造實體類的時候,才會用到建構函式,一般情況下,你只需要一個無參建構函式即可。其他的引數完全可以透過穿參set方法傳進去。
總的來說,建構函式的本質是為了構造一個實體類,而如何構造實體類,仍然是由程式設計師自己來決定的。
-
3 # 碼農的搬磚生涯
在回答這個問題前我想說的是如果自己手寫程式碼最好至少寫一個無參構造方法,養成一個良好的習慣很重要。
OK,轉入正題。
Java中編寫一個類時必須要寫構造器麼?
我的答案是必須。
為什麼這麼說呢,構造方法用於構造該類的例項物件,Java語言透過new關鍵字來呼叫構造方法,從而返回該類的例項。
構造方法是一個類建立物件的根本途徑,如果一個類沒有構造方法,這個類通常無法建立例項,因此,Java語言提供了一個功能:
如果我們沒有為一個類編寫構造方法,則系統會為該類提供一個預設的無參的構造方法。
可能有些小夥伴們會問了,我怎麼在我們專案中沒見到一個寫建構函式的?
我的猜想有以下幾種可能:
①開發人員比較瞭解這種機制,懶得寫
②忘了寫
@NoArgsConstructor :註解在類上;為類提供一個無參的構造方法
@AllArgsConstructor :註解在類上;為類提供一個全參的構造方法
-
4 # 架構師Adam
任何一門程式語言和實際的現實生活會有很多相似之處!如果一種高大上的概念,在程式語言中無法理解的時候,你可以試著聯想一下現實生活中的類似概念。
我們透過現象看本質。
因為Java是高階程式語言,我們可以理解為是適合正常人在一般環境下,能用現實生活中的語意和普通的思維邏輯,表達和理解的語言。
所以您的這個問題完全可以從現實中找答案。“構造”在中文的解釋意義上就是建造和構建的意思。比如說你需要在現實世界裡面發明創造一種新的東西。那麼你至少需要一些必備的材料來完成創造這種東西。
舉例說明,我需要創造一種小汽車。如果需要四個輪子作為主材料。那麼它的構造就必須要有四個輪子才能稱之為小汽車。如果不用任何必備材料也能創造小汽車,只要創造就要有創造的方法。憑空創造也是一種方法,只不過不需要任何材料。
學習程式設計,尤其是高階語言的程式設計,必須要先了解方法概念。很多晦澀的詞都是從英語直接翻譯過來的。一定要從現實意義上舉一反三,尋找同類幫助自己理解這些概念。
-
5 # IT人劉俊明
作為一名IT從業者,同時也出版過Java程式設計書籍,所以我來回答一下這個問題。
首先,構造器是Java程式設計當中的一個重要概念,理解構造器並運用構造器是Java程式設計師的基本功之一,同時對於構造器概念的深入理解,也能夠全面提升對於Java面向物件程式設計的認知。
構造器是類(class)的一個重要組成部分,程式設計師在設計一個類時,不論是否明確定義了構造器,系統都要保證一個類當中至少要存在一個構造器。簡單地說,構造器是一定會有的,即使程式設計師不寫,系統也會預設為類提供一個。
Java程式設計師在編寫一個類的過程中,通常都需要顯式定義構造器,這也是一個比較好的程式設計習慣,這個程式設計習慣對於後續的程式除錯和升級都有非常重要的影響。在顯式定義構造器時,如果沒有特定的初始化要求,那麼應該定義一個無參的空構造器,而如果有特定的初始化要求,也應該儘量保留一個無參的構造器,這對於程式未來的複用和遷移有非常重要的影響。
程式設計師在定義構造器時,應該秉持三個原則,其一是構造器儘量簡潔,我始終認為最“完美”的構造器就是無參的空構造器;其二是構造器之間儘量不要有巢狀呼叫(this呼叫),這對於後期的維護會帶來很多麻煩;其三是構造器內不要定義業務功能語句。
構造器本身的定位非常清晰,那就是完成物件的初始化任務,初始化的過程非常複雜,如果構造器內有大量的操作,不僅會降低Java程式的執行效率,更有可能會導致程式的異常崩潰,這種情況是非常糟糕的。Java語言雖然具有較強的語法檢測要求,同時也有較強的穩定性,但是如果構造器編寫出現了問題,會在一定程度上影響Java程式執行的穩定性。
最後,考慮一下這個程式的執行結果:
-
6 # 丶南柯叄夢
構造器分為有引數和無引數兩種。
根據業務需求,如果需要傳參的話,構造器是必須的。如果不需要的話,不寫構造器也是可以的。不寫構造器時,當我們去new 一個物件,Java會有一個預設的構造器供我們呼叫(反編譯成彙編也可以看到),也不需要去顯示的定義一個空構造器。
但是實際程式設計過程中,還是建議去定義這種預設的空構造器,以便於維護。
回覆列表
構造器是一定存在的、只是在你不寫的時候會預設生成無參構造器、當寫了構造器系統就不會生成預設的構造器了、所以要養成寫無參構造器的習慣、
題外話:你的這種求知慾很不錯、會成為以後入坑的優勢、一定要繼續保持、