Hel*_*ixS 1 java oop initialization class
找到了初始化书中对象的第二种方法.现在很困惑.
这声明了一个变量:
Car myCar;
Run Code Online (Sandbox Code Playgroud)
该变量属于类型Car并被调用myCar.但是,它尚未初始化为任何东西.它是一个Car对象的占位符,但没有放置这样的对象.所以它的价值在于null.
这声明并初始化一个实例:
Car myCar = new Car();
Run Code Online (Sandbox Code Playgroud)
您可以在逻辑上将其视为以下两个语句:
Car myCar;
myCar = new Car();
Run Code Online (Sandbox Code Playgroud)
声明并创建变量,将其设置为占位符,并将实例Car放在那里.
编辑: 更具体(我刚刚在这里学到了一些东西),值是null 如果它是一个类级成员.例如:
class MyClass {
Car myCar;
void someMethod() {
// myCar is "null" here
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果它是方法中的局部变量,则会略有不同:
class MyClass {
void someMethod() {
Car myCar;
// myCar is "uninitialized" here.
}
}
Run Code Online (Sandbox Code Playgroud)
差异主要是语义上的,你不应该担心它,除非你有错误或做了一些奇怪的事情.编译器会告诉您是否尝试使用"未初始化"变量,因为它在初始化之前无法使用.但是null可以使用变量,它的价值很简单null.