Java中的数据成员(字段)存在问题并将其引出来?如何正确实施?
我想在printReport()中输出calcWork()的结果,但我一直得到0.0设置work = this.totalWork;有问题吗?Java中的数据成员(字段)存在问题并将其引出来?如何正确实施?
public class CarnotEngine {
public double n = 10;
public double R = 4;
public double Th = 8;
public double Tc =2;
public double Va = 4;
public double Vb = 3;
public double totalWork;
public double highTemp, lowTemp;
public double efficientcy;
public CarnotEngine(double highTemp, double lowTemp){
this.highTemp = highTemp;
this.lowTemp = lowTemp;
}
public double calcWork(){
double Qh;
double work;
Qh = (n*R*highTemp)*log(Vb/Va);
work =(1-lowTemp/highTemp)*Qh;
work = this.totalWork;
return work;
}
public void printReport() {
System.out.println("Simulation Result for Carnot Engine");
System.out.println("work done" + totalWork);
public static void main(String[] args) {
CarnotEngine carengine = new CarnotEngine(500, 200);
carengine.calcWork();
carengine.calcEfficientcy();
carengine.printReport();
}
}
你的任务是反向的值:
work = this.totalWork;
应改为
this.totalWork = work;
的方式,现在你正在计算work
中的所有内容,并立即用this.totalWork
的值覆盖它。
我不确定你想要做什么。在你设置work = this.totalWork的行上,this.totalWork等于0.0,因此你得到了我期望的结果。你的意思是把这个总工作设置为工作的价值,而不是工作到总工作的价值?
是的我想将这个总工作设置为工作的价值。 – 2009-12-11 20:43:28
所以你需要改行 this.totalWork = work; 不是相反 – 2009-12-11 21:09:47
据我所知,totalWork
从未初始化和/或修改。
默认初始值是0.0,因此这是您在打印输出看到
您应该尝试了解局部变量(工作)和成员变量(totalWork)及其范围之间的区别。
其他人可能会打败我纠正这个问题,但重要的是,如果你学习像Java这样的面向对象的语言,那么你需要很好地理解这些概念。
是的,这就是我想要的! – 2009-12-11 20:45:44