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

を。インクリメントするだけの場合は、セッターを提供する必要はありません。

b. の

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 に答える