1

我需要增加 int 值。所以我为它制作了getter/setter,并将这个逻辑应用于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

2 回答 2

5

为什么你不只是做?

public void increment() {
    count++;
}

increment() 函数的 int 参数是干什么用的?

于 2013-03-08T05:27:53.863 回答
4

一种。如果您只想增加,则不需要提供任何设置器。

湾。在

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

可以直接访问count变量,这样count++就够了,不需要setCount。

C。通常需要一个reset方法。

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();
于 2013-03-08T05:29:44.110 回答