package com.wsy;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();
System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i的结果:"+t2.i);
t2.call();
}
}问题1:在主方法中t1.i++改成i输出结果一样在题目里写成i++有什么作用。。
问题2:为什么t2.i的输出结果不是47..而是3.
问题3:即使我再加多个t3上去为什么输出结果也是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();
System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i的结果:"+t2.i);
t2.call();
}
}问题1:在主方法中t1.i++改成i输出结果一样在题目里写成i++有什么作用。。
问题2:为什么t2.i的输出结果不是47..而是3.
问题3:即使我再加多个t3上去为什么输出结果也是3的。
想了一个下午了。希望高手们为小弟解答下。。
二、t2.i结果是3,因为你在调用t2.call();方法时, for(i=0;i <3;i++)先将i的值赋成0然后循环到i=3时不满足条件退出循环,此时的i值为3;
你每调call() 方法时都会将i的值改为0再循环,所以值会都是3
System.out.println("第一个实例对象调用变量i的结果:" + t1.i++); //这个打印47 后加1
System.out.println(CopyOfTransferProperty.i); //这个打印48