为什么结果和书上讲的不一样

jinancf 2006-07-18 08:18:06
请大家看看问题出在哪里
//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
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenqin2006 2006-07-18
  • 打赏
  • 举报
回复
不好意思乱说了
wenqin2006 2006-07-18
  • 打赏
  • 举报
回复
好象它调用了的。不的用构造方法调用的嘛!晕
rypgood 2006-07-18
  • 打赏
  • 举报
回复
郁闷,怎么我写完就结了?
rypgood 2006-07-18
  • 打赏
  • 举报
回复
你肯定少写了东西,我们来看你的代码
System.out.println("m1.classVar= " + m1.getInstanceVar()
+ "\tm2.classVar= " + m2.getInstanceVar());
其中m1.getInstanceVar()返回的值是什么呢?
看语句:int getInstanceVar() {return instanceVar;}
也就是说返回的是instanceVar
那么再看你的设置的这个instanceVar的值是什么呢?从头到尾你都没有初始化它,但是你有一个方法想初始化它,就是
void setInstanceVar(int i) {
classVar = i;
instanceVar = i;
}
这个方法。但是在前面语句中,你没有调用这个方法,这就导致你的instanceVar的值默认我0
wenqin2006 2006-07-18
  • 打赏
  • 举报
回复
我晕
wenqin2006 2006-07-18
  • 打赏
  • 举报
回复
可能是 因为setClassVar()用的是Static修饰怕?你看你用对象事例引用方法setClassVar()时和用类引用时结果大不同!
jinancf 2006-07-18
  • 打赏
  • 举报
回复
明白了,是我抄书时抄错行了。惭愧!!!
wenqin2006 2006-07-18
  • 打赏
  • 举报
回复
它返回的是一个空值
wenqin2006 2006-07-18
  • 打赏
  • 举报
回复
因为你用的是VOID修饰的SetInstanceVar的嘛!

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧