int定义 - 不确定代码中的目的是什么

时间:2018-05-06 16:41:13

标签: java android

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中重新定义?

我很难得到这个概念......感谢您的帮助!

5 个答案:

答案 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.