【发布时间】:2014-09-24 14:03:40
【问题描述】:
下面有这两个例子:
示例 1:
public class class1{
private classN var1;
public class1(param1) {
var1 = new classN(param1); //here I initialize var1;
}
public void setVar1(param1){
this.var1 = new classN(param1)
}
public classN getVar1(){
return this.var1;
}
}
public class class2{
private class1 c1;
public class2(param) {
this.c1 = new class1(param);
}
public void handle(){
c1.setVar1(sth);
}
}
示例 2:
public class class1{
private classN var1; //var1 not initialized inside constructor
public class1() {}
public void setVar1(param1){
this.var1 = new classN(param1);
}
public classN getVar1(){
return this.var1;
}
}
public class class2{
private class1 c1;
public class2() {
this.c1 = new class1();
}
public void handle(){
c1.setVar1(sth);
}
}
我想问两件事:
- 两个例子是否相等?
- var1 是否在这两种情况下都初始化了,否则我会在示例 2 中遇到某种异常?
提前谢谢你。
【问题讨论】:
-
你试过测试它们吗?请做;)
-
编译它(我不认为它是)。运行。如果您遇到异常,请告诉我们。我们当然会提供帮助。
-
我得到了两个例子
java.lang.NullPointerException。