0

Player クラスと Team クラスの両方で野球チームをモデル化しています。Player には各プレーヤーの統計 (名前、番号、打率など) がいくつかあり、Team には Player オブジェクトの配列、チーム名とチームのサイズがあります。

Team.java で Player オブジェクトの配列を作成し、単純な「for」ループを使用して配列を検索しました。ただし、コンパイラが Player.java にある「ゲッター」を見つけることができないというコンパイル時エラーが複数発生します。

Team.java でこのようなループを使用する私の battingAverage メソッドは次のとおりです。

public double battingAverage () {
    double sum = 0.0;
    for (int i = 0; i<size; i++) {
        sum = sum + team[i].getAverage;
    }
    return (sum / size);
}

そして、これが Player.java の「ゲッター」です

public double getAverage () {
    return average;
}

(平均はプライベート動的フィールドとして宣言され、コンストラクターによって値が与えられます)

これはコンパイラが私に与えるエラーです:

./Team.java:21: cannot find symbol
symbol  : variable getAverage
location: class Player
        sum = sum + team[i].getAverage;
                           ^

このタイプのエラーは、Team.java で使用するすべての「getter」(getPosition、getName など) で繰り返されます。

ただし、次のエラーも発生するため、コンパイラが team[i] を単一の Player オブジェクトとして認識することはわかっています。

    ./Team.java:21: operator + cannot be applied to double,Player.getAverage
            sum = sum + team[i].getAverage;
                  ^

したがって、何らかの理由で getAverage が Player.java に見つからず、その理由がわかりません。

あなたが提供できるどんな助けも大歓迎です。

4

4 に答える 4

6

それ以外の

sum = sum + team[i].getAverage;

使用する

sum = sum + team[i].getAverage();

これは、呼び出しているパラメーターのないメソッドであり、アクセスしているパブリック フィールドではありません。

于 2013-04-07T01:52:54.147 に答える
1

使用する必要があります

sum = sum + team[i].getAverage();
于 2013-04-07T01:53:20.803 に答える
0

ループで getAverage を呼び出したときに、括弧を省略しました。引数を取らない場合でも、すべてのメソッド呼び出しの後には括弧を付ける必要があります。

于 2013-04-07T01:53:23.633 に答える
0

あなたはプロパティにアクセスするのではなく、メソッドを呼び出しています。そのため、そのエラーが表示されています。change sum = sum + team[i].getAverage;これにsum = sum + team[i].getAverage();

于 2013-04-07T01:54:22.433 に答える