-1

重複の可能性:
非静的変数は静的コンテキストから参照できません (Java)

同じクラスの複数のオブジェクト (この場合は車) を作成しようとしています。次に、c1 (オブジェクトの名前) が作成されたかどうかを確認し (作成されたことを認識して)、次に c2 (他のオブジェクト) かどうかを確認しようとしています。同じクラスのオブジェクト) が作成されました (作成されなかったことがわかっています)。クラス Car: package parkingLot; を作成しました。

/**
 *
 * @author HASLima
 */
public class Car {

String brand;
String plates;
int mileage;

public String getMarca() {
    return brand;
}

public void setMarca(String brand) {
    this.brand = brand;
}

public String getMatricula() {
    return plates;
}

public void setMatricula(String plates) {
    this.plates = plates;
}

public int getKilometros() {
    return mileage;
}

public void setKilometros(int mileage) {
    this.mileage = mileage;
}


}

そして、クラス Park を作成しました: /* * このテンプレートを変更するには、[ツール] | [ツール] を選択します。テンプレート * エディターでテンプレートを開きます。*/ パッケージ駐車場;

/**
 *
 * @author HASLima
 */
public class Park {
    int nrOfCars;
    int space;
    Car[] c;
    int a = 0;

    public Park (int nrOfPlaces){
        space = nrOfPlaces;
        nrOfCars = 0;

     }
    public static void main(String[] args) {
        Park park1 = new Park(5);
        c[a] = new Car();
    }
}

そして、ここに問題があります。

c[a] = 新しい車();

このエラーを返します:

非静的変数 c は静的コンテキストから参照できず、非静的変数 a は静的コンテキストから参照できません

4

2 に答える 2

3

配列Car[] cは Park のオブジェクト変数として定義されているためpark1.c[a]、参照を呼び出そうとする代わりに使用する必要がありますc[a]

また、変数aは Park の Object であり、 から参照することはできませんmainpark1.aゲッターで変数をラップする必要があります。park1.getA()

于 2012-09-29T22:00:34.347 に答える
1

非静的変数は、インスタンスで呼び出さない限り、静的メソッド内でアクセスできません。あなたの場合、 c[] は静的ではないインスタンス変数であり、静的メソッド内でアクセスしているため、次のようにパーク インスタンスでアクセスする必要があります。

Park park1 = new Park(5);
 park1.c[park1.a] = new Car();
于 2012-09-29T22:08:54.003 に答える