2

私はこれが誰かにとって本当に簡単になることを知っています.なぜコンパイラがこれについて不平を言っているのか分かりません. 私はいくつかの答えを探していましたが、見つけることができるのはブラケットの問題だけですが、それは私の問題ではないと思います. 私はJavaが初めてなので、どんな助けも素晴らしいでしょう。これは、基本的なアキュムレータ プログラムであるはずのコードです。

public class BasicAccumulator implements Accumulator {
  {
    private int digit;
    private int value;

  }

  public int basicAccumulator(int digit, int value)
  {
    digit = 0;
    value = 0;
  }

  public void addDigit(int digit);
  {
    digit = digit + value;
  }

  public void plus();
  {
    value = digit + digit;
  }

  public void minus();
  {
    value = digit - digit;
  }

  public void clear();
  {
    value = 0;
  }

  public int displayValue();
  {
    return value;
  }

}
4

5 に答える 5

5
public void plus();

セミコロンを削除します。そのはず:

public void plus()
{ ...
}

, minus displayValue()(), clear() も同様です。そのはず:

于 2012-09-13T18:14:34.800 に答える
2

コメントをコードに直接投稿します。

public class BasicAccumulator implements Accumulator {

    //I'd delete this brackets and leave just the private declarations initialized
    //in zero.
    {
        private int digit;
        private int value;    
    }

    //I'm making this an initializing constructor by using the parameters
    //it defines. If you want both digit and value to be set to 0 (or any other value
    //by default) you can make a no argument constructor and invoke it.
    public BasicAccumulator(int digit, int value)
    {
        this.digit = digit;
        this.value = value;
    }

    public void addDigit(int digit); //This semicolon is wrong. Delete it.
    {
        digit = digit + value;
    }

    public void plus(); //This semicolon is wrong. Delete it.
    {
        value = digit + digit;
    }

    public void minus(); //This semicolon is wrong. Delete it.
    {
        value = digit - digit;
    }

    public void clear(); //This semicolon is wrong. Delete it.
    {
        value = 0;
    }

    public int displayValue(); //This semicolon is wrong. Delete it.
    {
        return value;
    }

}

これが例なのか何かなのかわかりませんが、ロジックにもいくつかの問題がありますが、それらはあなたに任せます(minus特にメソッドは、常に値が0に設定されるため)。

于 2012-09-13T18:39:27.653 に答える
0

投稿されたコードには 3 つの問題があります。

  1. すべてのメソッドの後にセミコロンがあります。abstractこれを使用するのは、(抽象クラスまたはインターフェイスで宣言された) 抽象メソッドがある場合のみです。
  2. 初期化ブロックでdigitandを作成しようとしたようです。valueそれらの周りのブラケットを取り外します。
  3. コンストラクターは値を返さないため、戻り値の型がそのシグネチャに含まれることはありません。あなたは持っていますがpublic int basicAccumulator、それはちょうどあるはずですpublic BasicAccumulator。また、大文字と小文字の区別にも注意してください。

固定コードは次のとおりです。

public class BasicAccumulator implements Accumulator {

    private int digit;
    private int value;

    public BasicAccumulator(int digit, int value) {
        digit = 0;
        value = 0;
    }

    public void addDigit(int digit) {
        digit = digit + value;
    }

    public void plus() {
        value = digit + digit;
    }

    public void minus() {
        value = digit - digit;
    }

    public void clear() {
        value = 0;
    }

    public int displayValue() {
        return value;
    }
}
于 2012-09-13T18:24:35.387 に答える
0
public void plus();
public void minus();
public void clear();
public int displayValue();

コードの上記の行はエラーです..

public void plus();
{
    value = digit + digit;
}

このようにしましょう...

public void plus()
{
    value = digit + digit;
}

残りのメソッドに対してこれを行います.....

于 2012-09-13T18:17:35.747 に答える
0

addDigit、plus、minus、clear、およびその下の 2 つの関数のシグネチャの後にあるセミコロンは何をしているのですか? それらを削除します。それは仕事をするでしょう

于 2012-09-13T18:19:18.117 に答える