【发布时间】:2017-11-27 20:09:58
【问题描述】:
我是一个初学者,我正在学习如何使用 java 中的另一种“getter”方法从 void 方法中检索值。但是,这一次,它继续返回 0.0。我不确定我做错了什么。
构造函数类:
private double gallons;
private double t;
public CO2()
{
gallons = 1288.0;
t = 0.0;
}
public void tons()
{
t = gallons * 8.78e-3;
}
public double getT()
{
return t;
}
测试类:
CO2 gas = new CO2;
System.out.print(gas.getT());
如果我在 main 方法中使用 gas.tons() 将 void 更改为 double 并“return”而不是“t =”,那么它会起作用,但我需要使用 getter 方法。我不明白为什么它只返回 0.0。
【问题讨论】:
-
你没有调用tons()
-
您为什么希望它不为零?您希望代码的哪一部分赋予它一个值?
-
也就是说,这种错误说明设计有多么错误。构造函数或 getT() 方法应该计算 t 的值。你不应该调用一个tons() 方法来计算它。此外,您的代码甚至无法编译:
new CO2()。发布您的真实代码。 -
它一直返回
0.0,因为您没有调用tons()来更改t的值。您还需要阅读如何创建 getter 和 setter 方法。 -
@MiLe:好的,所以您正在调用 getter 方法并成功获取值。究竟是什么问题?为什么你期望值不是
0.0?