0

申し訳ありませんが、Javaを学習しているだけです。しかし、「シンボルが見つかりません」というエラーが発生する理由を誰かに教えてもらえますか?私のコードは次のとおりです。

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コンストラクターを呼び出す前に、が欠落しているようです。

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 に答える