私はCarとTireの2つのクラスを以下の関数でもっています。初期化されたオブジェクトの内部Object属性にアクセスする際のNullPointerException
タイヤ:
public static class Tire{
public boolean isBroken;
public int milesLeft;
public Tire(){
isBroken = false;
milesLeft = 100;
}
public void copyTire(Tire anotherTire){
isBroken = anotherTire.isBroken;
milesLeft = anotherTire.milesLeft;
}
public int getMilesLeft(){
return milesLeft;
}
}
カー
public static class Car{
public boolean maintenance;
public String name;
public Tire tires[] = new Tire[MAX_TIRES];
public Tire LF = new Tire();
public Car(String name){
maintenance = false;
this.name = name;
}
public String getName(){
return name;
}
}
私の問題は、私は車の配列の全てのタイヤからの情報(milesLeft)を印刷したいということです。私はそれがforループを使って単純に動作すると仮定しましたが、そうではありません。理由はわかりません。
これは私が試したものです:
for(int i = 0; i < MAX_TIRES; i++){
System.out.println("Tire nº"+i+": "+ i20.tires[i].getMilesLeft());
}
タイヤのみを印刷している間、私たちは車のクラスを持っているLFは、全く問題はありません。
他のエラーが表示される場合もありますが、私はC++を勉強しましたが、私はJavaを使い始めています。
EDIT:
エラー:
スレッドの例外vehicles.mainで "主" java.lang.NullPointerExceptionが (vehicles.java:56)
車の宣言と'メイン機能。
public static void main(String []args) {
Car i20 = new Car("i20");
System.out.println("The name is " + i20.getName());
System.out.println("The tires' status right now is:");
for(int i = 0; i < MAX_TIRES; i++){
System.out.println("Tire nº"+i+": "+ i20.tires[i].getMilesLeft());
}
}
エラーは何ですか? –
反復する前にタイヤを追加していますか? – daniu
スレッド "main"の例外java.lang.NullPointerException vehicles.main(vehicles.java:56)エラー。そして、car:Car i20 = new Car( "i20");私は新しい車を作るときにもタイヤを作るだろうと思った。 –