高手帮忙啊

zhao253400 2007-10-14 12:10:23
class C
{
int c;
C(int a)
{
c=0;
for(int i=0;i<=a;i++)
c+=i;
}
C(C b)
{c=b.c;}
}
class Exam3_3
{
public static void main(String args[])
{
C c1=new C(6);
C c2=new C(new C(4));
System.out.println("c1:"+c1.c);
System.out.println("c2:"+c2.c);
}
}

结果:
c1:21
c2:10
能告诉我 C c2=new C(new C(4)); 是如何通过创建对象调用函数的吗?这个语句的调用我看不懂呢?高手帮帮忙啊!!
...全文
71 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhk21 2007-10-14
  • 打赏
  • 举报
回复
C c2 = new C(new C(4));
创建对象过程:
1. new C(4) --- 调用C(int a) 创建匿名对象(假设为inner,这个对象是隐含的),经过循环过程(a=4,代入),得到inner.c=10
2. new C(new C(4)) --- 即new C(inner),构造了一个对象(假设为outer)这是inner.c=10,因为传入的C类型的对象,所以调用第二个构造方法C(C b),此时 outer.c=innert.c,即outer.c=10

然后通过 C c2=outer,将对象赋给对象引用c2, over!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧