按照书里面的代码写的,for这里,带数据类型和不带数据类型,输出结果不一样是为什么
public class CopyOfTransferProperty {
static int i = 47; //定义静态成员变量
public void call() {
System.out.println("调用call()方法");
for(int 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();
t2.i = 60;
System.out.println("第一个对象调用类成员变量i的结果是:" + t1.i++);
t1.call();
System.out.println("第二个对象调用类成员变量i的结果是:" + t2.i);
t2.call();
}
}
public class CopyOfTransferProperty {
static int j = 47; //定义静态成员变量
public void call() {
System.out.println("调用call()方法");
for(j = 0;j < 3;j++) {
System.out.print(j + " ");
if(j == 2) {
System.out.println("\n");
}
}
}
public CopyOfTransferProperty() {
}
public static void main(String args[]) {
CopyOfTransferProperty t1 = new CopyOfTransferProperty();
CopyOfTransferProperty t2 = new CopyOfTransferProperty();
t2.j = 60;
System.out.println("第一个对象调用类成员变量j的结果是:" + t1.j++);
t1.call();
System.out.println("第二个对象调用类成员变量j的结果是:" + t2.j);
t2.call();
}
}
第一段代码输出结果
第一个对象调用类成员变量i的结果是:60
调用call()方法
0 1 2
第二个对象调用类成员变量i的结果是:61
调用call()方法
0 1 2
第二段代码输出结果
第一个对象调用类成员变量j的结果是:60
调用call()方法
0 1 2
第二个对象调用类成员变量j的结果是:3
调用call()方法
0 1 2
问题:为什么会造成输出结果不同?