java中一个类有两个重载的构造方法时,可以用this在一个构造函数中调用另一个构造函数,那么创建了几个.
classA{privateinti;privatestaticintcount=0;publicA(){count++;}publicA(inti){this();th...
class A{
private int i;
private static int count = 0;
public A(){ count++; }
public A(int i){
this();
this.i = i;
count++;
}
public static int getCount(){
return count;
}
}
class B{
public static void main(String [] args){
A a = new A(9);
System.out.println(A.getCount());
}
}
运行结果:
C:\Documents and Settings\Administrator\桌面\java>java B
2
真的是创建了2个对象,分配了2块内存吗? 大虾们,帮满看下。。。 展开
private int i;
private static int count = 0;
public A(){ count++; }
public A(int i){
this();
this.i = i;
count++;
}
public static int getCount(){
return count;
}
}
class B{
public static void main(String [] args){
A a = new A(9);
System.out.println(A.getCount());
}
}
运行结果:
C:\Documents and Settings\Administrator\桌面\java>java B
2
真的是创建了2个对象,分配了2块内存吗? 大虾们,帮满看下。。。 展开
展开全部
构造方法的作用是在创建对象时执行初始化,构造方法本身并不创建对象,创建对象应该是由new这个关键字来实现的。
在构造方法中A(int i)调用this 也只是调用无参构造方法的方法体一起对同一个对象进行初始化。
可以参考疯狂JAVA 5.5,解释这个问题很清楚
在构造方法中A(int i)调用this 也只是调用无参构造方法的方法体一起对同一个对象进行初始化。
可以参考疯狂JAVA 5.5,解释这个问题很清楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
new 就不说了,只要是new一个对象 那么内存一定会分个空间来给这个new所付的对象,this出现时 也等同类的出现 代表本类或这个未完全的类 还有一个super()的出现 也代表一个类 父类 super()继承上的东西 自己看看吧 这些挺基础的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
明显创建了一个,只是分别调用了两个构造函数。
如果你说创建了2个对象,那也不对,还调用了Object类的构造函数呢,那不是创建了三个对象?
如果你说创建了2个对象,那也不对,还调用了Object类的构造函数呢,那不是创建了三个对象?
追问
那到底是哪个构造函数创建的对象呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建了一个A的对象,只是在执行A(9)时函数的第一句调用了A()中的所有语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询