2013-03-08 48 views
1

我有一個要求增加int值。所以我做了的getter/setter它和我應用這個邏輯INT的增值:使用獲取器設置器遞增int值

public class MyOrderDetails { 

    private int count = 0; 

    public int getCount() { 
     return count; 
    } 

    public void setCount(int count) { 
     this.count = count; 
    } 

    public void increment(int increment) { 
     setCount(getCount() + 1); 
    } 

} 

是我在做什麼,或者這是親語法錯誤這個正確的方式?

回答

4

a。如果你只是想增加,你不需要提供任何setter。

b。在

public void increment() { 
    setCount(getCount() + 1); 
} 

您可以直接訪問計數變量,所以count++就足夠了,並不需要setCount。

c。通常需要重置方法。 d)。 count ++不是原子的,所以如果它在多線程場景中使用,則同步。

public synchronized void increment() { 
    count++; 
} 

所以最後的類將是:

class Counter{ 
    private int count = 0; 

    public int getCount(){ 
     return count; 
    } 

    public synchronized void increment(){ 
     count++; 
    } 

    public void reset(){ 
     count = 0; 
    } 
} 

所以,你可以使用類,如:

Counter counter = new Counter(); 
counter.increment() //increment the counter 
int count = counter.getCount(); 
+0

我得到了我的要求,但先生,我的問題是這是賴特的方式做pojo類的一些邏輯方法.. – 2013-03-08 06:17:55

+0

是的,我的回答是關於我認爲你做錯了什麼。 @SulabhGajjar – StarPinkER 2013-03-08 06:26:02

+0

感謝很多先生讓這種方法保持同步。我不知道同步的意義,但在現在我得到了它的意義..再次thanxs很多先生... – 2013-03-08 06:27:10

5

爲什麼你不只是做?

public void increment() { 
    count++; 
} 

什麼是增量()函數的int參數?

+0

私人詮釋計數= 1; – 2013-03-08 06:14:06