簡體   English   中英

構造函數(java)

[英]constructors (java)

好的,所以我要完成一個作業,在該作業中,我必須創建一個具有一組私有屬性的類。 之所以變得棘手,是因為我對Java編程(或一般編程)還很陌生,並且在封裝方面不怎么實踐。 我以前沒有使用getter / setter或構造函數。 我了解getter / setter方法,但還沒有在線了解構造函數的任何信息,甚至不了解它們的用途。

我必須為每個屬性創建getter / setter和構造函數,因此看來我應該學習使用這些方法。 如果有人可以給我一個帶有構造函數的類的示例,並解釋該構造函數在做什么,以及為什么要使用它,那將是很好的。

提前謝謝你。

首先,歡迎來到編程世界:)

讓我們看一個簡單的例子。

假設您要編程一個代表Square的類。 創建Square對象時,必須為Square提供某些屬性,例如每邊的長度。 這是構造函數起作用的地方。

類的布局如下所示,請注意,未為length_of_each_side變量分配值。

public class Square {
     int length_of_each_side;

     public Square() {
     ...
     }

     public Square(int length) {
     ...
     }
}

您可以具有默認的構造函數,如果您不指定正方形的大小,它將為您提供預定義的正方形。

public Square() {
     length_of_each_side = 1;
}

或者您可以允許某人指定正方形的大小

public Square(int length) {
     length_of_each_side = length;
}

如果我想創建一個預定義的Square(長度為1),它看起來像這樣

Square mySquare = new Square();

如果我想創建一個Square並指定55的長度,它將看起來像這樣

Square mySquare = new Square(55);

我不確定您在學校如何看待這件事,或者您的老師在告訴您什么,但這只是一個建議-請勿習慣使用吸氣劑和吸氣劑。 它們在Java中不是“自動的”是有原因的,因為它們確實不應該在那里。

當您有一個對象時,其想法是讓該對象為您做些事情-換句話說,您應該提供對您的變量起作用的方法,而不是獲取該變量並對其執行然后放回去。

很多時候您無法避免使用吸氣劑-但是僅在確定需要使用吸氣劑時才添加它們,而不是出於習慣問題。

您的構造函數是設置所有成員變量的最佳位置。 實際上,如果將變量定為final(一個很好的習慣,使類成為“不變”),則構造函數將是唯一可以分配變量的地方。

確保在創建對象時調用構造函數,因此是設置對象的好地方。 在構造函數中,如果確保對象處於有效狀態並且具有最終成員變量,則不可能使對象進入無效狀態-這是一種非常方便的做法,可以節省大量調試時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM