java中对象的属性和行为

publicclassCopyOfTransferProperty{staticinti=47;publicvoidcall(){System.out.println("... public class CopyOfTransferProperty {
static int i=47;
public void call(){
System.out.println("调用call()方法");
for(i=0;i<3;i++){
System.out.print(i+" ");
if(i==2){
System.out.println("\n");
}
}
}
public CopyOfTransferProperty(){

}
public static void main(String[] args) {
CopyOfTransferProperty t1=new CopyOfTransferProperty();
CopyOfTransferProperty t2=new CopyOfTransferProperty();
CopyOfTransferProperty t3=new CopyOfTransferProperty();

t2.i=60;
System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i的结果:"+t2.i);
t2.call();

}

}
在主方法中定义的t2.i=60;
输出结果t1.i++写成t1.i有什么分别.
为什么输出t2的时候结果不是60而是3.很想不明白.
新手入门请教各位高手.谢谢了.
那如果方法中我把i++.改成i
输出结果是一样。。那写成i有什么分别。我知道i++是运算后递增1.
t2的值等于3很想不明白。怎么循环到3了。。
2~3楼得解释得我不太明白。
有没有说详细的。 谢谢了。
展开
 我来答
撒白风05F
2009-08-04 · TA获得超过1010个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:532万
展开全部
输出结果t1.i++写成t1.i有什么分别.
答:输出结果是没有什么分别的,只是在输出结果之后,t1.i的值自增1
为什么输出t2的时候结果不是60而是3.很想不明白.
t2输出时,已经调用了t1.call方法,由于i是一个静态变量,它的值也表现在CopyOfTransferProperty其它所有的对象中
for(i=0;i<3;i++){
System.out.print(i+" ");
if(i==2){
System.out.println("\n");
}
}
循环结束后,i的值为3
tantk1
2009-08-12
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
是先输出t1.i的值之后才进行++ 操作的,这个过程是先使用后++操作
输出3是因为在执行call方法中的for语句重新给i赋值了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友388688327
2009-08-04 · TA获得超过1053个赞
知道小有建树答主
回答量:1297
采纳率:0%
帮助的人:986万
展开全部
首先因为i是一个静态变量.为类中所有对象所共享.
刚开始 i=47,然后t2.i=60,把它改为60.
然后,System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
打印出i的值为60.(i++是先取i的值,再让i自加1).

然后t1.call();经过循环 i的值变为3.
最后,System.out.println("第二个实例对象调用变量i的结果:"+t2.i);
打印出i的值为3.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式