【发布时间】:2017-01-24 21:29:47
【问题描述】:
例如,假设我有这 3 个重载函数:
/** Function #1 */
public static String add(List<String> operands)
{
return add(operands, 10);
}
/** Function #2 */
public static String add(List<String> operands, int base)
{
return Integer.toString(add(Integer.parseInt(operands.remove(0), base),operands, base), base);
}
/** Function #3 */
private static int add(int result, List<String> operands, int base)
{
if(operands.size() == 0)
{
return result;
}
result += Integer.parseInt(operands.remove(0), base);
return add(result, operands, base);
}
在这种情况下调用函数 #2 是否正确,因为函数 #1 调用了函数 #1 的“父”重载函数并且两者都是公共的?
将函数 #3 称为这些函数的“递归”函数是否也是正确的,或者是否有另一个术语来描述它被公共函数调用为递归调用自身的隐藏函数这一事实?
我知道这些不是正确的术语,但我想了解的是,考虑到它们的作用,不同类型的重载函数是否有固定的术语。
【问题讨论】:
-
旁注:java中的函数应该是camelCase。
-
如果一个方法是
public并且是您 API 的一部分,那么您应该期望它可能会被使用。 -
@Ahmad 谢谢,已更正。每天从 C# 切换到 Java 有时会变得很忙。
-
有趣的问题;但我不知道每个人都会在这里同意的任何“事实上的”条款。我认为你说的这三种方法之间存在一定的关系是正确的;但是AFAIK这些概念“未命名”。所以从这个意义上说,就像感觉一样有趣;我的感觉是,这个问题是“征求意见”的“边界线”。
标签: java function methods overloading terminology