日期:2014-05-20  浏览次数:20670 次

java技术性问题 来高手看看
突然想到一个java的问题 : 如果调用类的一个构造器创建对象时 该构造器中调用了另一个构造器 那此时会创建一个对象还是两个对象?

高手解释一下

------解决方案--------------------
我觉得是1个。调用构造器,最终是返回对象的实例,外部可以访问,如果创建两个的话,返回的实例是1,还是2呢,貌似没有意义。
构造器作用,1.创建java对象的重要途径. 2.对系统产生的对象初始化 3.并将该对象作为返回值返回,是外部程序可以访问.
------解决方案--------------------
引用:
2个对象!!


测试一下就知道了


public class Test {

public Test() {
this(0);
System.out.println(this.hashCode());
}

public Test(int i) {
System.out.println(this.hashCode());
}

public static void main(String[] args) {
new Test();
}

}


应该是一个  因为你调用别的构造函数的时候  还没有那块内存区呢

所以说this或者super必须写在第一行

而且记得书上说Java的构造器和C++不一样  Java的构造器是如何初始化而不是如何创建