Java教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请查看Java语言更改以获取Java SE 9及后续版本中更新的语言特性摘要。
请查看JDK发行说明以了解有关所有JDK版本的新功能、增强功能以及删除或弃用选项的信息。
这是一个典型的方法声明示例:
public double calculateAnswer(double wingSpan, int numberOfEngines, double length, double grossTons) { // 在这里进行计算 }
方法声明中唯一必需的元素是方法的返回类型、名称、一对括号()
和括号之间的方法体{}
。
一般来说,方法声明有六个组成部分,顺序如下:
public
、private
等,后面会学到更多。void
。()
括起来。如果没有参数,则必须使用空括号。修饰符、返回类型和参数将在本课程的后面部分讨论。异常将在后面的课程中讨论。
上面声明的方法的签名是:
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)
是不同且唯一的方法,因为它们需要不同的参数类型。
您不能声明多个具有相同名称、相同数量和类型参数的方法,因为编译器无法区分它们。
编译器在区分方法时不考虑返回类型,因此即使它们具有不同的返回类型,也不能声明具有相同签名的两个方法。