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块内存吗? 大虾们,帮满看下。。。
展开
 我来答
萧曼0n
推荐于2017-11-25 · TA获得超过379个赞
知道小有建树答主
回答量:225
采纳率:100%
帮助的人:213万
展开全部
看来你还不了解实例化的过程?

实例化 就是调用类中的构造器用来初始化类中成员变量,通过“参数列表”来选择具体的构造器
A a=new A(9);//传递了参数9,表示调用的是“含参构造器”,在含参构造器中存在访问本类中的无参构造器这么一个方法,这个过程很简单。。。。

你只创建了一个实例,分配了一块内存
百度网友fd0d1e9
2018-11-23
知道答主
回答量:1
采纳率:0%
帮助的人:807
展开全部
构造方法的作用是在创建对象时执行初始化,构造方法本身并不创建对象,创建对象应该是由new这个关键字来实现的。
在构造方法中A(int i)调用this 也只是调用无参构造方法的方法体一起对同一个对象进行初始化。
可以参考疯狂JAVA 5.5,解释这个问题很清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdcz1314
2012-05-26
知道答主
回答量:31
采纳率:0%
帮助的人:24.8万
展开全部
new 就不说了,只要是new一个对象 那么内存一定会分个空间来给这个new所付的对象,this出现时 也等同类的出现 代表本类或这个未完全的类 还有一个super()的出现 也代表一个类 父类 super()继承上的东西 自己看看吧 这些挺基础的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdu_viper
2012-02-26 · TA获得超过124个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:116万
展开全部
明显创建了一个,只是分别调用了两个构造函数。
如果你说创建了2个对象,那也不对,还调用了Object类的构造函数呢,那不是创建了三个对象?
追问
那到底是哪个构造函数创建的对象呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
swz20110806
2012-02-26
知道答主
回答量:13
采纳率:0%
帮助的人:1.7万
展开全部
创建了一个A的对象,只是在执行A(9)时函数的第一句调用了A()中的所有语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式