gpt4 book ai didi

java - 这是什么 java.lang.NullPointerException?

转载 作者:行者123 更新时间:2023-12-01 06:45:02 24 4
gpt4 key购买 nike

我编写了一个简短的脚本来了解 Java 数组:

class Dog {
String name;
void bark() {
System.out.println(name + " is barking");
}

void eat() {
System.out.println(name + " is eating");
}
}

class mypets {
public static void main(String [] args) {

Dog dogA = new Dog();

dogA.name="Lassy";
dogA.bark();
dogA.eat();

Dog[] myDogs = new Dog[3];
myDogs[0].name = "Barney";
myDogs[0].bark();
}
}

然后我编译并运行我的程序:

C:\Java>javac mypets.java

C:\Java>java mypets
Lassy is barking
Lassy is eating
Exception in thread "main" java.lang.NullPointerException
at mypets.main(mypets.java:22)

我做错了什么?我试着用谷歌搜索那个可怕的“java.lang.NullPointerException”,但老实说我现在很困惑。

最佳答案

数组就像一排可以容纳对象的盒子;但是,当您创建一个数组时,这些框是空的。 NullPointerException 是 Java 告诉您这一点的方式。所以,当你说

Dog[] myDogs = new Dog[3];
myDogs[0].name = "Barney";

您尝试在第一个框中设置Dog 的名称,但是没有这样的Dog -- 框是空的。你需要在盒子里放一只 Dog 才能完成这项工作:

Dog[] myDogs = new Dog[3];
myDogs[0] = new Dog();
myDogs[0].name = "Barney";

然后它会起作用。

关于java - 这是什么 java.lang.NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16783676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com