2016-11-14 16 views
-4

我希望能夠在運行程序的某個時刻通過主驅動程序類修改在類中的構造函數中定義的局部變量的值。我將如何能夠實現這一目標?在Main類或主要方法內修改一個實例變量

這是我正在使用的構造函數的示例。

public Scale() 
{ 
    weight = 0; 
    unit = "kg"; 
} 

我想在驅動程序中運行程序時修改重量值。

+0

這些都不是局部變量。你有什麼嘗試?你知道如何構建你的對象的實例嗎?你有getter和setters嗎? –

+1

@ cricket_007:看起來他需要正確讀取java文本 - getter和setter方法。作爲一個社區wiki回答,但我也投票結束,因爲這是他學習任何基本Java文本的最佳答案。 –

回答

1

這聽起來像是你想要給這個類一個方法,讓外部代碼能夠改變或「改變」類的字段狀態。這種「增變」方法通常在Java中使用,例如「setter」方法。在這裏,public void setWeight(int weight)

public void setWeight(int weight) { 
    this.weight = weight; 
} 
+0

不能相信我沒搞明白。我已經有了一個類似於這個的setter/mutator,但它並沒有點擊我的腦袋。對我來說,課程還是比較新的。謝謝! – JKawa

-1

最好的方法來允許,可能會通過一種方法。這可能是那樣簡單setWeight(),或更復雜的東西等的方法添加項目到規模的東西...

public class Scale { 

    private float weight = 0; 
    private String unit = "kg"; 

    public void setWeight(float weight) { 
     this.weight = weight; 
    } 

    public void addItem(Item i) { // Assumes that Item is an interface defined somewhere else... 
     this.weight += i.getWeight(); 
    } 

    public static void main(String[] args) { 
     Scale s = new Scale(); 
     s.setWeight(4.0F); // sets the weight to 4kg 
     s.addItem(new Item() { 
      @Override 
      public float getWeight() { 
       return 2.0F; 
      } 
     }); // Adds 2kg to the previous 4kg -- total of 6kg 
    } 

} 
相關問題