public void submitOrder(View view) {
CheckBox whippedCreamCheckBox = (CheckBox) findViewById(R.id.whippedCreamCheckBox);
boolean hasWhippedCream = whippedCreamCheckBox.isChecked();
Log.v("MainActivity", "Has whipped Cream: " + hasWhippedCream);
int price = calculatePrice();
String priceMessage = createOrderSummary(price, hasWhippedCream);
displayMessage(priceMessage);
}
/**
* Calculates the price of the order.
*
* @param 'quantity' is the number of cups of coffee ordered
* "5" is used for the price of each coffee
* @return total price
*/
private int calculatePrice() {
int price = quantity *5;
return price;
}
我对编码很新,所以请记住这是新的东西,我正在努力理解它是如何工作的......我正在学习这门课程,最后我得到了上面的代码。
我在质疑为什么我有“calculatePrice”int因为我需要的只是由数量定义的int“price”并存储价格的值。这就是我基于“private int calculatePrice”3行理解的内容。 “int price = calculatePrice();”的目的是什么?在公共空白?我觉得我在私人“calculatePrice”中定义了“价格”,现在我通过写“int price = calculatePrice();”来重新定义“价格”。这令人困惑。有人可以解释为什么我的“int price”定义了两次,意思是在“calculatePrice”中定义并在“publicPrice”中再次在public void中重新定义?
我很难得到这个概念......感谢您的帮助!
答案 0 :(得分:0)
在参考上面的代码时,int price在两个方法中定义了两次,其范围很大程度上以它们定义的方法结束。尽管您的代码中的calculatePrice方法做得不多,但在实际项目中,您可以分配一个执行大量逻辑的复杂方法,最后以int的形式返回评估值。
答案 1 :(得分:0)
您没有重新定义变量价格。两个“价格”变量都在不同的范围内,因此实际上它们不是同一个变量。在第一种情况下,price
仅可见并可从submitOrder方法访问,因为它在该方法中声明。在第二种情况下,price
仅在computePrice方法中可见且可访问,因此即使具有相同的名称,它们也是完全不同的变量。
您可以在此链接中详细了解变量的范围和生命周期:http://www.javawithus.com/tutorial/scope-and-lifetime-of-variables
顺便说一句,我认为方法calculatePrice没有正确定义,需要int
参数来设置数量:
private int calculatePrice(int quantity) {
int price = quantity *5;
return price;
}
修改此方法后,您应该以这种方式从方法submitOrder
中调用它:
int price = calculatePrice("a number");
答案 2 :(得分:0)
第二种方法:
private int calculatePrice() { int price = quantity *5; return price; }
这是一个返回整数类型的方法,它负责计算价格并返回价格结果。
在您的第一种方法中,您调用此函数并获得价格的结果并将其存储在您的实际变量中,该变量也称为价格。
不要混淆你可以写第二种方法:
private int calculatePrice() { return quantity *5; }
然后在第一个方法中调用它
int price=calculatePrice()
答案 3 :(得分:0)
calculatePrice()
是一个返回整数值return price
的函数。因此,当您调用该函数时,它将在calculatePrice()
内执行该部分代码,并将返回一个整数的答案。
在函数内定义的变量int price
的范围仅限于该函数(您可以根据需要命名变量,不必仅命名“price”)。
int price = calculatePrice();
是另一个变量,它为您分配从函数返回的值。
答案 4 :(得分:-1)
The methods after modifying the variable name...
.table
Hope this will help to understand the code.