我相信我无法理解如何在Java中给出方法的签名。例如,如果我的代码是:
public void addOn(Fraction other) {
number = other.denominator * number + other.numerator * denominator;
denominator = denominator * other.denominator;
我必须给出方法addOn();
的签名此方法的签名是否只是addOn(Fraction);?
答案 0 :(得分:3)
这实际上取决于"准确度"你需要的。
当你与同事非正式地交谈时,那么"签名"可能包含人类可能感兴趣的所有信息:
然而,当你来自编译器构造函数或者JVM compiler观点时,答案是不同的;在这种情况下,只有第2项和第3项很重要;其他任何内容 是签名的一部分。
答案 1 :(得分:2)
在Java中,方法签名仅包含方法的名称和参数的数据类型,而不包含任何其他内容。
例如,在上面发布的方法中:
public void addOn(Fraction other) {
}
签名将是addOn(Fraction)。
这是C ++与Java之间的区别之一,C ++签名中也包含返回类型但在java返回类型中不是方法签名的一部分。 所以在C ++方法的情况下,上述方法的签名将为void addOn(Fraction);
答案 2 :(得分:1)
如果您想将Fraction
作为参数传递给班级。首先,您需要创建Fraction
的引用,如
Fraction ref = new Fraction(); //假设Fraction类具有默认构造函数
然后你可以传递它;
addOn(ref); //分数类的参考作为参数
答案 3 :(得分:0)
我相信,你应该参考this article。
它明确指出方法签名仅包含:
所有其他部分,例如异常,返回类型,注释都是方法声明的一部分,而不是签名。
除了这些语法之外,在选择方法名时也应考虑语义。
我建议您浏览java coding guidelines。