找到了第二种初始化书中对象的方法。现在很困惑。'Car myCar = new Car();''有什么区别和'汽车myCar'?'?
回答
声明一个变量:
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
。
如果声明局部变量并且不初始化它,它不是'null'。它没有初始化。 – khelwood
第一条语句定义了一个变量,并通过构造一个新的Car实例为其赋值。第二个简单地定义了一个变量而没有为它分配一个值;
Car myCar;
这不会初始化对象,只是声明它。
在声明Car myCar
;如果myCar
是instance
变量,myCar的值为null。它并没有指向记忆中的任何物体。你可以在第一次使用它之前声明变量并初始化它,否则它会抛出一个NullPointerException
。
在声明Car myCar = new Car();
中,有一个对象在内存中创建了名为myCar
的类Car
。
声明:声明声明变量的类型及其名称。一个变量只能被声明一次。编译器使用它来帮助程序员避免错误,例如将字符串值分配给整数变量。在读取或分配变量之前,必须先声明该变量。
'汽车myCar;'如果这是一个局部变量,'myCar'不是'null';它没有初始化。 – khelwood
是的,你是对的。我将更新实例和局部变量之间的差异 –
- 1. 正在运行Car c = new Driver();在C#
- 2. Android in Car Audio
- 3. Arduino L239D RC-Car
- 4. new XMLHttpRequest()vs new XMLHttpRequest - 有什么区别?
- 5. String和new String有什么区别?
- 6. new-itemproperty和set-itemproperty有什么区别?
- 7. `f()`和`new f()`有什么区别?
- 8. alloc,copy和new有什么区别?
- 9. “new A()”和“A.newInstance()”有什么区别?
- 10. `String.class`和`new Class [] {String.class}`有什么区别?
- 11. EAAccessory with car蓝牙
- 12. 在vb.net中声明为new和as something = new有什么区别?
- 13. C/C++中`new`和`new()`结构有什么区别?
- 14. 在C++中重载operator new和operator new []有什么区别?
- 15. 创建一个Java Car类
- 16. 方案:列表中的CAR和CDR
- 17. 如何扩展LINQ-to-SQL类,而无需在每次生成代码时进行更改?从评论
- 18. iOS中的.car代表什么?编译资产(______)..?
- 19. 新的int和new(int)之间的C++有什么区别?
- 20. XWPFTable table = doc.createTable和new XWPFTable(CTTbl,IBody)有什么区别?
- 21. Android中的'new Fragment()'和'Fragment.getInstance()'有什么区别?
- 22. Perl中的新Some :: Class和Some :: Class-> new()有什么区别?
- 23. 在JavaScript中Array(1)和new Array(1)有什么区别?
- 24. RXJS,Observable.create和new Observable之间有什么区别?
- 25. OOD - 为什么汽车/公共汽车/摩托车应该从车辆派生出来
- 26. 找不到符号 - 构造函数Car()
- 27. 加速和制动的汽车类
- 28. 有什么区别`和$(Bash中有什么区别?
- 29. Lisp中'和#'有什么区别?
- 30. DrRacket中是否有相当于set-car!和set-cdr!在SICP?
[未初始化的对象初始化为NULL]的可能重复(http://stackoverflow.com/questions/16699593/uninitialized-object-vs-object-initialized-to-null) –