0

わかりましたので、宿題の問題があります。インストラクターが提供するテスタークラスで使用されるクラスを構築しています。基本的なカウンターにすぎません。テスターからクラスに渡された数値が正常に機能し、出力が期待どおりになるようにカウンターを設定しました。ただし、私のクラスでは、初期カウントを 0 に設定し、デフォルトのインクリメント/デクリメントを 1 にする必要があります。

これが私のクラスです:

public class Counter
{
    private int count;
    private int stepValue;

    /**
     * This method transfers the values called from CounterTester to instance variables
     * and increases/decreases by the values passed to it. It also returns the value
     * of count. 
     *
     * @param args
     */ 
    public Counter (int initCount, int value)
    {       
        count=initCount;
        stepValue=value;
    }   

    public void increase ()
    {
        count = count + stepValue;
    }

    public void decrease ()
    {
        count = count - stepValue;
    }

    public int getCount()
    {
        return count;
    }

}

テスタークラスは次のとおりです。

public class CounterTester
{

    /**
     * This program is used to test the Counter class and does not expect any
     * command line arguments. 
     *
     * @param args
     */
    public static void main(String[] args)
    {
        Counter counter = new Counter();

        counter.increase();
        System.out.println("Expected Count: 1 -----> Actual Count: " + counter.getCount());

        counter.increase();
        System.out.println("Expected Count: 2 -----> Actual Count: " + counter.getCount());

        counter.decrease();
        System.out.println("Expected Count: 1 -----> Actual Count: " + counter.getCount());


        counter = new Counter(3, 10);
        System.out.println("Expected Count: 3 -----> Actual Count: " + counter.getCount());

        counter.increase();
        System.out.println("Expected Count: 13 ----> Actual Count: " + counter.getCount());

        counter.decrease();
        System.out.println("Expected Count: 3 -----> Actual Count: " + counter.getCount());

        counter.decrease();
        System.out.println("Expected Count: -7 ----> Actual Count: " + counter.getCount());
    }

}
4

1 に答える 1

2

初めてインスタンス化するときは、 Counter クラスに引数なしのコンストラクターがありません。

Counter counter = new Counter(0,1);

初期値とステップ値を設定する必要があります。

または、引数なしのコンストラクターを提供できます。

public class Counter
{
  private int count;
  private int stepValue;

  public Counter () { //no argument constructor - must be explictly made now
    count=0;
    stepValue = 1;
  }

  public Counter (int initCount, int value)
  {       
    count=initCount;
    stepValue=value;
  }  

  //rest of code
}
于 2013-01-26T00:09:41.010 に答える