找到了初始化书中对象的第二种方法。现在很困惑。
最佳答案
这声明了一个变量:
Car myCar;
该变量的类型为
Car
,称为myCar
。但是,它尚未初始化为任何东西。它是Car
对象的占位符,但没有在此放置任何对象。因此它的值是null
。这将声明并初始化一个实例:
Car myCar = new Car();
您可以合乎逻辑地将其视为以下两个语句:
Car myCar;
myCar = new Car();
声明并创建一个变量,将其设置为占位符,并在其中放置
Car
实例。编辑:更具体地说(我刚才在这里学到了一些东西),如果它是类级成员,则值为
null
。例如:class MyClass {
Car myCar;
void someMethod() {
// myCar is "null" here
}
}
但是,如果它是方法中的局部变量,则略有不同:
class MyClass {
void someMethod() {
Car myCar;
// myCar is "uninitialized" here.
}
}
区别主要是语义上的,除非您有错误或正在做奇怪的事情,否则您不必担心它。编译器会告诉您是否要使用“未初始化的”变量,因为在初始化之前不能使用它。但是可以使用
null
变量,它的值就是null
。