Java 访问初始化对象的内部对象属性时发生NullPointerException
我有两个类,汽车和轮胎,具有以下功能 轮胎: 汽车 我的问题是,我想打印汽车阵列中所有轮胎的信息(milesLeft)。我以为只要使用for循环就可以了,但事实并非如此,我也不知道为什么 这就是我所尝试的:Java 访问初始化对象的内部对象属性时发生NullPointerException,java,oop,nullpointerexception,Java,Oop,Nullpointerexception,我有两个类,汽车和轮胎,具有以下功能 轮胎: 汽车 我的问题是,我想打印汽车阵列中所有轮胎的信息(milesLeft)。我以为只要使用for循环就可以了,但事实并非如此,我也不知道为什么 这就是我所尝试的: for(int i = 0; i < MAX_TIRES; i++){ System.out.println("Tire nº"+i+": "+ i20.tires[i].getMilesLeft()); } for(int i=0;i
for(int i = 0; i < MAX_TIRES; i++){
System.out.println("Tire nº"+i+": "+ i20.tires[i].getMilesLeft());
}
for(int i=0;i
虽然只打印了一个轮胎,但如果我们在汽车类中,就没有问题了
<>你可能看到的其他错误也写了,我已经学习了C++,但是我从java开始。
编辑:
错误:
线程“main”java.lang.NullPointerException中出现异常
at vehicles.main(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());
}
}
publicstaticvoidmain(字符串[]args){
i20车=新车(“i20”);
System.out.println(“名称为”+i20.getName());
System.out.println(“轮胎现在的状态是:”);
对于(int i=0;i
我认为当制造一辆新车时,它也会制造轮胎
计算机是愚蠢的。你没有告诉它在汽车制造时制造轮胎,所以它没有为你制造轮胎。这就是为什么当您尝试访问轮胎时,会抛出NullPointerException
。轮胎还没有制造出来
创建汽车后,还要创建轮胎:
Car i20 = new Car("i20");
for (int i = 0 ; i < i20.tires.length l i++) {
i20.tires[i] = new Trie();
}
我认为当制造一辆新车时,它也会制造轮胎
计算机是愚蠢的。你没有告诉它在汽车制造时制造轮胎,所以它没有为你制造轮胎。这就是为什么当您尝试访问轮胎时,会抛出NullPointerException
。轮胎还没有制造出来
创建汽车后,还要创建轮胎:
Car i20 = new Car("i20");
for (int i = 0 ; i < i20.tires.length l i++) {
i20.tires[i] = new Trie();
}
错误是什么?在迭代之前是否向数组中添加轮胎?vehicles.main(vehicles.java:56)处线程“main”java.lang.NullPointerException中出现异常。和汽车:汽车i20=新车(“i20”);我认为在创建新车时,它也会创建轮胎。@EduardoGomez发布您的全部代码。错误是什么?在迭代之前是否向数组中添加轮胎?线程“main”java.lang.NullPointerException at vehicles.main(vehicles.java:56)中的异常错误。和汽车:汽车i20=新车(“i20”);“我原以为在造一辆新车的时候,它也会造轮胎。”爱德华多戈梅兹把你的全部代码都发出来。我知道我不该说谢谢,但我还不能投票。这就是解决办法。我觉得自己很愚蠢。我知道我不该说谢谢,但我还不能投票。这就是解决办法。我觉得自己很愚蠢。
Car i20 = new Car("i20");
for (int i = 0 ; i < i20.tires.length l i++) {
i20.tires[i] = new Trie();
}
public Car(String name){
maintenance = false;
this.name = name;
for (int i = 0 ; i < this.tires.length ; i++) {
this.tires[i] = new Tire();
}
}