文档

Java™ 教程
隐藏目录
定义方法
路径: 学习Java语言
课程: 类和对象
章节:

定义方法

这是一个典型的方法声明示例:

public double calculateAnswer(double wingSpan, int numberOfEngines,
                              double length, double grossTons) {
    // 在这里进行计算
}

方法声明中唯一必需的元素是方法的返回类型、名称、一对括号()和括号之间的方法体{}

一般来说,方法声明有六个组成部分,顺序如下:

  1. 修饰符 - 如publicprivate等,后面会学到更多。
  2. 返回类型 - 方法返回的值的数据类型,如果方法不返回值,则为void
  3. 方法名称 - 字段名称的规则也适用于方法名称,但是约定略有不同。
  4. 参数列表 - 以逗号分隔的输入参数列表,前面是它们的数据类型,用括号()括起来。如果没有参数,则必须使用空括号。
  5. 异常列表 - 后面会讨论。
  6. 方法体 - 在括号内的方法代码,包括局部变量的声明。

修饰符、返回类型和参数将在本课程的后面部分讨论。异常将在后面的课程中讨论。


定义: 方法声明的两个组成部分构成了方法的方法签名,即方法的名称和参数类型。

上面声明的方法的签名是:

calculateAnswer(double, int, double, double)

命名方法

虽然方法名可以是任何合法的标识符,但是代码约定限制了方法名的使用。按照约定,方法名应该是以小写字母开头的动词,或者以小写字母开头的多个单词组成的名称,后面可以是形容词、名词等。在多个单词的名称中,第二个及后续单词的第一个字母应该大写。以下是一些示例:

run
runFast
getBackground
getFinalData
compareTo
setX
isEmpty

通常情况下,一个类中的方法具有唯一的名称。然而,由于方法重载的存在,一个方法可能与其他方法具有相同的名称(关于这点将在后面的课程中讨论)。

方法重载

Java编程语言支持方法的重载,并且Java可以根据不同的方法签名来区分不同的方法。这意味着如果一个类中的方法具有不同的参数列表,它们可以具有相同的名称(对此有一些限制,将在标题为"接口和继承"的课程中讨论)。

假设您有一个类,可以使用书法来绘制各种类型的数据(字符串、整数等),并且该类包含为每种数据类型绘制的方法。为每个方法使用新名称很麻烦,例如drawStringdrawIntegerdrawFloat等。在Java编程语言中,您可以为所有绘制方法使用相同的名称,但是对每个方法传递不同的参数列表。因此,数据绘制类可以声明四个名为draw的方法,每个方法具有不同的参数列表。

public class DataArtist {
    ...
    public void draw(String s) {
        ...
    }
    public void draw(int i) {
        ...
    }
    public void draw(double f) {
        ...
    }
    public void draw(int i, double f) {
        ...
    }
}

重载方法是通过传入方法的参数的数量和类型进行区分的。在代码示例中,draw(String s)draw(int i)是不同且唯一的方法,因为它们需要不同的参数类型。

您不能声明多个具有相同名称、相同数量和类型参数的方法,因为编译器无法区分它们。

编译器在区分方法时不考虑返回类型,因此即使它们具有不同的返回类型,也不能声明具有相同签名的两个方法。


注意: 应谨慎使用重载方法,因为它们可能使代码变得难以阅读。

上一页: 声明成员变量
下一页: 为您的类提供构造函数