
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楼得解释得我不太明白。
有没有说详细的。 谢谢了。 展开
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楼得解释得我不太明白。
有没有说详细的。 谢谢了。 展开
展开全部
输出结果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
答:输出结果是没有什么分别的,只是在输出结果之后,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
展开全部
System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
是先输出t1.i的值之后才进行++ 操作的,这个过程是先使用后++操作
输出3是因为在执行call方法中的for语句重新给i赋值了
是先输出t1.i的值之后才进行++ 操作的,这个过程是先使用后++操作
输出3是因为在执行call方法中的for语句重新给i赋值了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先因为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.
刚开始 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.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |