Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正确的变量初始化和来自另一个类的调用_Java_Oop_Object - Fatal编程技术网

Java 正确的变量初始化和来自另一个类的调用

Java 正确的变量初始化和来自另一个类的调用,java,oop,object,Java,Oop,Object,我有以下两个例子: 例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 clas

我有以下两个例子:

例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中会出现某种异常? 提前谢谢。

两个例子都一样吗

否,在案例-1中,为新的ClassParam;初始化var1;对于非null值,在第二种情况下,var1将为null

不,这两个例子并不相同。在示例1中,变量在构造时初始化,没有它class1无法实例化。在示例2中,该变量未初始化,并被赋予默认值null,直到在稍后的某个时间设置为setVar1 不,你不会得到一个例外。如果在调用handle之前尝试调用getVar1,将得到默认的null值。
你试过测试它们吗?请做;我不认为是。运行它。如果您面临例外情况,请告知我们。当然我们会帮上忙的。我可以找到两个exmaples java.lang.NullPointerException。