Java中Accessor访问器输出结果不正确问题求助
问题原因
你的代码错误来自构造方法没有实现参数到实例变量的赋值逻辑:
- 你定义的带参构造方法内部是空的,没有把调用构造时传入的
1、2、true、'$'这几个值赋值给类的成员变量 - Java中类的成员变量如果没有手动赋值,会自动初始化对应类型的默认值:
- int类型默认值为
0 - boolean类型默认值为
false - char类型默认值为
\u0000(不可见的空字符)
这就是实际运行输出和预期不符的根本原因。
- int类型默认值为
修复方案
修改构造方法,添加this.前缀区分成员变量和参数,完成赋值即可:
public Q4(int wholeNumber, int decimalPart, boolean positive, char currencySymbol){ this.wholeNumber = wholeNumber; this.decimalPart = decimalPart; this.positive = positive; this.currencySymbol = currencySymbol; }
修改后重新运行就能得到你预期的输出结果。
内容的提问来源于stack exchange,提问作者umba
相关产品推荐
相关产品推荐

