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()
{ ...
}

displayValue(),minus(), 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
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

您发布的代码存在三个问题。

  1. 在所有方法之后都有分号。只有当你有一个抽象方法(abstract在抽象类或接口中声明)时才使用它。
  2. 看起来您尝试在初始化程序块中创建digit和。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

在函数 addDigit、加号、减号、清除和下面两个的签名之后,这些分号在做什么?删除它们。这将完成这项工作

于 2012-09-13T18:19:18.117 回答