系列中的上一篇
当前教程
定义方法
系列中的下一篇

系列中的上一篇: 创建类

系列中的下一篇: 为您的类提供构造函数

定义方法

 

定义方法

以下是一个典型方法声明的示例

public double calculateAnswer(double wingSpan, int numberOfEngines,
                              double length, double grossTons) {
    //do the calculation here
}

方法声明中唯一必需的元素是方法的返回类型、名称、一对括号 () 以及花括号 {} 之间的正文。

更一般地说,方法声明有六个组成部分,按顺序排列

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

修饰符、返回类型和参数将在本节后面讨论。异常将在后面的章节中讨论。

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

上面声明的方法的签名是

calculateAnswer(double, int, double, double)

 

命名方法

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

run
runFast
getBackground
getFinalData
compareTo
setX
isEmpty

通常,方法在其类中具有唯一的名称。但是,由于方法重载,方法可能与其他方法具有相同的名称。

 

重载方法

Java 编程语言支持重载方法,Java 可以区分具有不同方法签名的方法。这意味着类中的方法可以具有相同的名称,只要它们具有不同的参数列表(对此有一些限定,将在标题为 继承 的部分中讨论)。

假设您有一个类可以使用书法绘制各种类型的数据(字符串、整数等),并且包含一个用于绘制每种数据类型的方法。使用每个方法的新名称很麻烦——例如,drawString()drawInteger()drawFloat() 等等。在 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) 是不同的唯一方法,因为它们需要不同的参数类型。

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

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

注意:重载方法应谨慎使用,因为它们会使代码的可读性大大降低。


上次更新: 2024 年 1 月 5 日


系列中的上一篇
当前教程
定义方法
系列中的下一篇

系列中的上一篇: 创建类

系列中的下一篇: 为您的类提供构造函数