java技术性问题 来高手看看
突然想到一个java的问题 : 如果调用类的一个构造器创建对象时 该构造器中调用了另一个构造器 那此时会创建一个对象还是两个对象?
高手解释一下
------解决方案--------------------我觉得是1个。调用构造器,最终是返回对象的实例,外部可以访问,如果创建两个的话,返回的实例是1,还是2呢,貌似没有意义。
构造器作用,1.创建java对象的重要途径. 2.对系统产生的对象初始化 3.并将该对象作为返回值返回,是外部程序可以访问.
------解决方案--------------------
测试一下就知道了
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的构造器是如何初始化而不是如何创建