为什么结果和书上讲的不一样
请大家看看问题出在哪里
//Member.java
public class Member {
static int classVar;
int instanceVar;
static void setClassVar(int i) { classVar = i;}
static int getClassVar() { return classVar; }
void setInstanceVar(int i) {
classVar = i;
instanceVar = i;
}
int getInstanceVar() {return instanceVar;}
}
//MemberTest.java
public class MemberTest {
public static void main(String[] args) {
Member m1 = new Member();
Member m2 = new Member();
m1.setClassVar(1);
m2.setClassVar(2);
System.out.println("m1.classVar= " + m1.getInstanceVar()
+ "\tm2.classVar= " + m2.getInstanceVar());
m1.setInstanceVar(11);
m2.setInstanceVar(22);
System.out.println("m1.InstanceVar= " + m1.getInstanceVar()
+ "\tm2.InstanceVar= " + m2.getInstanceVar());
Member.classVar = 3;
System.out.println("m1.classVar= " + m1.getClassVar() + "m2.classVar= "
+ m2.getClassVar());
System.out.println("classVar= " + Member.getClassVar());
}
}
运行结果:
m1.classVar= 0 m2.classVar= 0
m1.InstanceVar= 11 m2.InstanceVar= 22
m1.classVar= 3m2.classVar= 3
classVar= 3
我的问题是第一行为什么classVar的值不是2,而是0
运行环境:eclipse