簡體   English   中英

Java代碼-如何設置對象變量

[英]Java code - how to set object variable

我只是在學習,想了解一段設置對象變量的代碼。

在后續測試類中設置對象變量bfield的正確方法是什么?

public class test {
private String afield;

private String bfield;

public test() {

buildList();

}

public void buildList() {

    some code to derive and populate afield.

    this.bfield = this.afield;   //  ( 1)

    setBfield(afield);  // (2) say getter and setters do exist

    bfield = afield;  //  (3)
}

正確的做法是什么? 我選擇選項1還是選項2?

setter / getter是更可取的,因為您也可以在那些訪問器方法中封裝一些處理


另請參閱

當然,這三個都可以。

我通常不喜歡選項1,除非我要區分實例成員和參數。 例如, public void buildList(String bfield) { this.bfield = bfield; } public void buildList(String bfield) { this.bfield = bfield; } this.everything都是多余的噪音; 如果您不需要它,它所做的就是給錯誤提供更多代碼來隱藏。:)

選項2更具前瞻性; 如果您進行了一些更改,以便必須與bfield一起設置其他bfield (或者bfield根本不需要后備字段,例如,如果設置它應該在子對象上設置某些內容),很高興你叫setBfield因為你不會有很多地方可以更改設置bfield代碼。 基本上,如果需要並且已經有setBfield方法,我建議在大多數情況下使用它。

如果您擁有一個字段,那么您知道該字段將始終包含在對象本身中,並且獨立於其他字段,那么選項3通常會更快。 另外,如果您不希望外部代碼也能夠設置bfield ,則不必創建setter(請參閱:污染您的界面)。

使用蝕! 讓它為您做些工作。 這樣創建一個類Test。

public class Test {
   private String afield;
   private String bfield;
}

然后執行以下操作:

  • 右鍵單擊->選擇“源”->生成構造函數
  • 右鍵單擊->選擇“源”->生成帶有字段的構造函數
  • 右鍵單擊->選擇“源”->生成獲取器/設置器

完成:)並查找Java bean約定。 您的代碼會嚇壞任何Java exp開發人員! :)

暫無
暫無

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

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