gpt4 book ai didi

java - 'Car myCar = new Car();' 和 'Car myCar;' 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 10:10:52 24 4
gpt4 key购买 nike

在一本书中找到了第二种初始化对象的方法。现在很困惑。

最佳答案

这声明了一个变量:

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

关于java - 'Car myCar = new Car();' 和 'Car myCar;' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35870663/

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