0

Sorry, just learning Java; but, can someone tell me why I'm getting a "cannot find symbol" error? My code is as follows:

public class NumberHolder {
  public int anInt;
  public float aFloat;

  public NumberHolder(int setAnInt, float setAFloat) {
    setAnInt = anInt;
    setAFloat = aFloat;
  }

  public static void main(String[] args) {
    NumberHolder newNumber = NumberHolder(12, 24F);
  }
}
4

4 回答 4

3

看起来您在new调用构造函数之前缺少 a :

NumberHolder newNumber = new NumberHolder(12, 24F);

编辑:另外,正如 Tassos Bassoukos 在他的回答中指出的那样,您需要在构造函数中扭转分配:

anInt = setAnInt;
aFloat = setAFloat;

虽然就个人而言,我喜欢这样编写我的构造函数:

public NumberHolder(int anInt, float aFloat) {
  this.anInt = anInt;
  this.aFloat = aFloat;
}

不过,这是风格和个人喜好的问题。

于 2012-08-06T09:41:56.467 回答
2

自从

public NumberHolder(int anInt, float aFloat);

是构造函数而不是普通方法,您需要使用关键字 new 才能获取实际对象。你把它当作一个方法来调用,你没有任何名为 NumberHolder 的方法(但如果你有它会是有效的)

于 2012-08-06T09:47:40.500 回答
1

除了new您缺少的关键字之外,构造函数中的赋值应该是相反的。

于 2012-08-06T09:50:03.557 回答
0

您需要使用new关键字实例化新对象。

public class NumberHolder {
    public int anInt;
    public float aFloat;

    public NumberHolder(int anInt, float aFloat) {
        this.anInt = anInt;
        this.aFloat = aFloat;

    }

    public static void main(String[] args) {
        NumberHolder newNumber = new NumberHolder(12, 24F);
    }

}
于 2012-08-06T09:43:22.660 回答