解释一下java输出

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:44:44
public class Mixer {
Mixer(){}
Mixer(Mixer m){
m1=m;
}
Mixer m1;
public static void main(String[] args){
Mixer m2=new Mixer();
Mixer m3=new Mixer(m2); m3.go();
Mixer m4=m3.m1; m4.go();
Mixer m5=m2.m1; m5.go();
}
void go(){
System.out.println("hi");
}
}

Mixer m2=new Mixer(); //创建m2对象
Mixer m3=new Mixer(m2); //用m2对象创建m3对象
m3.go(); //调用m3上的go方法,输出“hi”
Mixer m4=m3.m1; //m4对象实际上是m2
m4.go(); //调用m4上的go方法,输出“hi”
Mixer m5=m2.m1; //m5对象为m2对象的成员变量m1,m1没有被初始化
m5.go(); //因为没有被初始化,所以调用方法的时候会抛出异常

希望对你有用