Gla*_*Zee 2 java object declare
在java中创建一个对象(或任何东西)时,做什么之间有什么区别,例如,
Dog d = new Dog();
Run Code Online (Sandbox Code Playgroud)
而不是做
Dog d;
Run Code Online (Sandbox Code Playgroud)
然后,用它完成它(有时在内部和方法的开头)
d = new Dog();
Run Code Online (Sandbox Code Playgroud)
第一个不是更简单,更容易吗?人们为什么要这样做呢?
考虑以下场景.假设构造函数Dog可以抛出异常:
try {
Dog d = new Dog();
} catch(Exception ex) {
// treat exception
}
d.bark();
Run Code Online (Sandbox Code Playgroud)
这将无法编译,因为d在try块外部不可见.你需要做的是:
Dog d = null;
try {
d = new Dog();
} catch(Exception ex) {
// treat exception
}
if(d != null) d.bark();
Run Code Online (Sandbox Code Playgroud)
而且还有很多其他情况.例如,您可能有一个if-else块,d根据某些条件进行不同的初始化:
Dog d = null;
if(/* condition */)
d = new Dog("Lassie");
} else {
d = new Dog("Sam");
}
d.bark();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |