本帖最后由 王威 于 2012-10-21 12:59 编辑
一旦调用a()方法,那么调用这个方法的对象实例的属性 i 就会加一
public class Test3
{
int i = 7;
public static void main(String[] args)
{
Test3 c=new Test3();//{c.i=7}
Test3 b = c.a();//{b.i=8,c.i=8,继而输出a方法里5+8=13,并且在这之后b和c指向同一个引用}
System.out.println(b.i);//打印出b.i为8
b.a();//{b.i=9,继而输出a方法里5+9=14,,(同样由于b==c,所以这里c.i=9)}
//输出结果为13(age自动归为默认值0)(原因不明)
c.a();//{c.i=10,继而输出a方法里5+10=15}
//输出结果为8
System.out.println(c.i);//输出10
}
public Test3 a()
{
int age = 4;
age++;
this.i++;
System.out.println(age+i);
return this;
}
}
|