1

关于java中所谓的编程约定的一个方面,我有一个简单的问题。

简单地说——如果我将一个方法中的局部变量传递给另一个(帮助)方法——我应该将它的名称保持为 100% 还是尝试稍微重命名它?

看这个例子——我应该将 helpermethods 签名中的变量 totalAmount 重命名为类似的东西(例如 total_amount 或 theTotalAmount)吗?

private void myMethod() {

   int totalAmount = 0;
   // calculations where totalAmount is involved.

   myHelperMethod(totalAmount); // send totalAmount to a another method.

}

private void myHelperMethod(int totalAmount) {

    // use totalAmount here .....
}
4

4 回答 4

11

绝对没有义务保持相同的变量名。

只需选择适合当地情况的名称即可。

在您的示例中,您myHelperMethod可能会收到任何金额作为参数,不一定是 a totalAmount。让我们命名它amount,或者描述它在此方法中的实际作用的任何其他名称。

于 2013-07-12T09:56:01.437 回答
2

即使调用是针对变量的变量(它可能是针对变量的表达式),这两个名称在概念上代表不同的事物,因此您不应将它们命名为相同,除非它们的真正含义相同。

形参表示名称在函数内部有意义的变量,而您传递的变量表示名称在函数外部有意义的变量。这是一个例子:

// Function definition
static double computeDiscount(double originalPrice, double discountPercentage, double cap) {
    ...
}

// Function calls
double priceClothing = computeDiscount(clothingOrigPrice, discountPercentage, clothingDiscountCap);
double priceAccessories = computeDiscount(accessoriesOrigPrice, discountPercentage, accessoriesDiscountCap);
于 2013-07-12T09:57:12.617 回答
2

不,你不需要。就像将水从一个玻璃杯倒到另一个玻璃杯中,价值(水)将保持不变,玻璃杯(支架)会改变。

于 2013-07-12T09:58:15.903 回答
0

名称由您决定。惯例并没有说明您应该保留什么名称。使用最能反映实体的名称。并且还要避免使用令人困惑的名称。在您的情况下,如果“总金额”实际上都代表总金额,那么您做出了正确的选择。如果不是,则重新考虑更改名称。

于 2013-07-12T09:58:09.713 回答