-1

メイン クラスでのメソッドの使用に関して質問があります。Race クラスのコードは次のとおりです。

import java.util.ArrayList;


public class Race {

    private ArrayList<Car>cars;


    public Race(){
         cars = new ArrayList<Car>();
    }

    public void addCars(Car car){
        cars.add(car);
    }
}

上記は、別のクラスの main メソッドを使用して、配置する準備ができている車の配列リストを作成するために行ったことです。

public class Test {

    public static void main(String[] args) {
        Car toyota = new Car("Toyota",1.0,1.0,2.0,2.0);
        cars.addCars(toyota);
    }
}

ただし、最後の行にエラーがあり、「車を解決できません」と表示されています。どうすれば修正できるかわかりません。おそらくRaceクラスにゲッターメソッドを書いているのでしょうか?

4

2 に答える 2

2

のインスタンスを作成しraceて呼び出すaddCars

Race race = new Race();
race.addCars(toyota);
于 2013-10-06T13:35:35.027 に答える
1

carsそのコンテキストには存在しないため、小文字の変数名を使用するという規則にも固執することをお勧めします。

Testクラスを次のように変更します。

public class Test {
    public static void main(String[] args) {
        Race race = new Race();
        Car toyota=new Car("Toyota",1.0,1.0,2.0,2.0);
        race.addCars(toyota);
    }
}

(存在しない)ではなく、レースに車を追加したい。carsレースに車を追加するには、まず車を作成する必要があります。

レースに車を追加すると、内部的に車リストに追加されます。(あなたがそうしたからです)あなたの問題は、基本的にスコープ外の変数を使用しようとしているということです。(基本的に別の場所)

あなたの正確な問題がわからないので、これ以上お手伝いすることはできませんが、レースをローカル変数ではなくフィールドに保存したい場合があります。それはすべて、あなたが何をしたいかによって異なります.

于 2013-10-06T13:38:22.813 に答える