我有一些代码可以查看一个类,我理解其中的大部分内容,但对此方法感到困惑。使用给定的代码,返回更改总是不会导致0,因为最后输入的内容是totalOfItems和totalGiven都是0.0。有人告诉我,在运行它时不会发生,但我想了解原因。任何人都可以帮助我吗?
public SelfCheckout () {
this.totalOfItems = 0.0;
this.totalGiven = 0.0;
}
/**
* This method will scan the item.
* @param amount The amount the items cost.
*/
public void scanItem (double amount){
this.totalOfItems = this.totalOfItems + amount;
}
/** The method will add the items scanned and return the total due.
*
* @return getTotalDue The getTotalDue is the total amount of items scanned.
*/
public double getTotalDue(){
return this.totalOfItems;
}
/** The method will show the amount that is received from the consumer.
*
*/
public void receivePayment(double amount){
this.totalGiven = this.totalGiven + amount;
}
/**The method will calculate the amount of change due.
*
*/
public double produceChange(){
double change = this.totalGiven - this.totalOfItems;
this.totalGiven = 0.0;
this.totalOfItems = 0.0;
return change;
答案 0 :(得分:3)
语句按顺序执行。 totalGiven
和totalOfItems
的更改在计算后不会更改change
。
答案 1 :(得分:0)
为此:
double change = this.totalGiven - this.totalOfItems;
this.totalGiven = 0.0;
this.totalOfItems = 0.0;
return change;
首先你将一个(非零)值分配给change
,然后重置原始变量,然后才返回值{{ 1}}。变量值将复制到另一个变量,然后重置。
答案 2 :(得分:0)
我认为假设在某些时候已经调用了receivePayment和scanItem,因此他们将字段变量重新分配给非零的数字。然后给出改变。在您已经计算了更改以重置下一个事务的变量后,事务将关闭。