0

私は困惑しています。ゲッターとセッターを含めて、一部のコードを最適化したい。これは私がこれまでに持っているものです:

public class ThingHolder {
private int updateCounter=0;
private Object theThing;

public Object getThing() {
    return theThing;
}

public void setThing(Object theThing) {
    this.theThing = theThing;
    updateCounter++;
}

public int getUpdateCounter() {
    return updateCounter;
}

と:

public class ThingHolderTester {
public static void main(String[] args) {
    ThingHolder t = new ThingHolder();

    t.setThing="First Object"; t.updateCounter++;
    System.out.println("The thing is currently " + t.getThing + " and the ThingHolder has been updated " + t.updateCounter + " times");

    t.setThing="Second Object"; t.updateCounter++;
    System.out.println("The thing is currently " + t.getThing + " and the ThingHolder has been updated " + t.updateCounter + "times");
}

現時点では、get および set メソッドでシンボルが見つからないというエラーが発生し続けています。助けてください?

4

4 に答える 4

1

コードを次のように変更します。

public class ThingHolderTester {
public static void main(String[] args) {
    ThingHolder t = new ThingHolder();

    t.setThing("First Object");
    System.out.println("The thing is currently " + t.getThing() + " and the ThingHolder has been updated " + t.getUpdateCounter() + " times");

    t.setThing("Second Object");
    System.out.println("The thing is currently " + t.getThing() + " and the ThingHolder has been updated " + t.getUpdateCounter() + "times");
}

問題:

  1. 関数を呼び出すには、「()」を追加し、その中に必要な引数を追加する必要があります。
  2. setThing メソッドはカウンター自体を更新します。メイン コードで手動で行う必要はありません。
  3. updateCounter プロパティはプライベートであり、他のクラスから直接アクセスすることはできません。
于 2013-06-02T19:06:16.720 に答える
1

それらは関数です。

関数を使用するには、括弧を使用して呼び出す必要があります。

于 2013-06-02T18:35:33.443 に答える
0
 t.setThing="First Object"; t.updateCounter++;

その他の欠点: 2 回カウントアップします。

.setThing での最初の呼び出し、t.updateCounter での 2 番目の呼び出し。

于 2013-06-02T18:37:33.550 に答える