Java 方法

2025年7月28日 | 阅读 6 分钟

方法是代码块或一组语句或一组为了执行特定任务或操作而分组的代码。它用于实现代码的重用。我们编写一次方法,然后可以多次使用它。我们不需要一遍又一遍地编写代码。通过添加或删除代码块,还可以轻松修改和提高代码的可读性。只有在我们调用或引用方法时,它才会被执行。

Java 中最重要的一个方法是 main() 方法。如果您想了解更多关于 main() 方法的信息,请参阅链接 Java Main Method

为什么要使用方法?

  • 重用性:方法提供代码重用。一旦定义了一个方法,就可以在程序的各个部分多次调用它。
  • 模块化:方法有助于将复杂问题分解成更小、更易于管理的部分。
  • 可维护性:使用方法,代码的更新和调试变得更容易,因为程序某一部分的更改不一定会影响其他部分。
  • 抽象:方法提供了一种封装实现细节的方式,只将必要的部分暴露给用户。

命名方法

在定义方法时,请记住方法名必须是一个动词,并且以小写字母开头。如果方法名有两个以上的单词,第一个单词必须是动词,后面跟一个形容词或名词。在多词方法名中,除了第一个单词外,每个单词的首字母都必须大写。例如

单词方法名: sum(), area()

多词方法名: areaOfCircle(), stringComparision()

一个类中可能存在同名但参数列表不同的方法,这被称为方法重载。

阅读更多 Java 命名约定

方法声明

方法声明提供了关于方法属性的信息,例如可见性、返回类型、名称和参数。它有六个组成部分,称为方法头,如下图所示。

Method in Java

方法签名:每个方法都有一个方法签名。它是方法声明的一部分。它包括方法名和参数列表。

访问修饰符:访问修饰符是方法的访问类型。它指定了方法的可见性。Java 提供了四种访问修饰符。

  • public:当我们在应用程序中使用 public 修饰符时,该方法可以被所有类访问。
  • private:当我们使用 private 访问修饰符时,该方法只能在它被定义的类中访问。
  • protected:当我们使用 protected 访问修饰符时,该方法可以在同一个包内或不同包中的子类中访问。
  • default:当我们不在方法声明中使用任何访问修饰符时,Java 默认使用 default 访问修饰符。它只能在同一个包内可见。

返回类型:返回类型是方法返回的数据类型。它可以是基本数据类型、对象、集合、void 等。如果方法不返回任何内容,我们使用 void 关键字。

方法名:它是用于定义方法名称的唯一名称。它必须与方法的函数相对应。假设,如果我们正在创建一个用于两个数字相减的方法,则方法名必须是 subtraction()。方法通过其名称被调用。

参数列表:它是用逗号分隔并用一对括号括起来的参数列表。它包含数据类型和变量名。如果方法没有参数,则将括号留空。

方法体:它是方法声明的一部分。它包含了所有要执行的操作。它被一对花括号括起来。

方法体包含在花括号 {} 中,其中包含定义方法功能或工作的语句。例如,考虑以下代码片段。

方法类型

Java 中有两种方法

  • 预定义方法
  • 用户定义方法

阅读更多 Java 中的方法类型

预定义方法

Java 类库中已定义的方法称为预定义方法。它也被称为标准库方法内置方法。我们可以在程序的任何地方通过直接调用它们来使用这些方法。

例如,String.length(), String.equals(), String.compareTo(), Math.sqrt(), Math.pow() 等是预定义方法。

当我们在程序中调用任何预定义方法时,与相应方法相关的代码系列会在后台运行。

示例:预定义方法

示例

编译并运行

输出

2 raised to the power of 5 is: 32.0

用户定义方法

由用户或程序员编写的方法称为用户定义方法。这些方法可以根据需要进行修改或定制。

如何调用用户定义的方法?

在 Java 中,调用方法取决于该方法是静态的还是非静态的。

如果方法是静态的,我们可以直接使用类名或在同一个类中调用它。请注意,我们需要创建一个对象来调用静态方法。

如果方法是非静态的,我们必须创建该类的对象,并使用该对象来调用方法。

注意:如果我们尝试在没有对象的情况下从静态上下文调用非静态方法,则会收到编译时错误,因为非静态方法属于实例,而不是类本身。

示例:用户定义方法

示例

编译并运行

输出

Goodbye from a non-static method!
Hello from the static method!

Java 方法选择题

1. 什么是 Java 中的方法?

  1. 执行特定任务的代码块
  2. 存储数据的变量
  3. 定义对象的类
  4. 声明常量的接口
 

答案:a

解释:Java 中的方法是执行特定任务的代码块,在被调用时执行,并且可以返回值。


2. 如何定义一个不返回任何值的方法?

  1. 使用 void 关键字
  2. 使用 null 关键字
  3. 使用 empty 关键字
  4. 使用 none 关键字
 

答案:a

解释:一个不返回任何值的方法在其声明中使用 void 关键字定义。


3. 什么是方法重载?

  1. 定义多个同名但参数列表不同的方法
  2. 定义多个同名且参数列表相同的方法
  3. 定义具有不同返回类型的方法
  4. 在不同类中定义方法
 

答案:a

解释:方法重载涉及在同一个类中定义多个同名但参数列表不同的方法。


4. 以下关于方法重写的说法哪项是正确的?

  1. 重写允许子类提供其超类中已定义方法的特定实现
  2. 重写在单个类中发生
  3. 重写会更改方法签名
  4. 重写不能应用于抽象方法
 

答案:a

解释:方法重写允许子类提供一个已经定义在其超类中的方法的特定实现,同时保持相同的方法签名。


5. 相对于它所覆盖的方法,被覆盖的方法必须具有什么访问级别?

  1. 相同或更严格
  2. 相同或更宽松
  3. 始终 public
  4. 始终 protected
 

答案:b

解释:为了确保子类方法在超类方法可访问的地方也一样可访问,被覆盖的方法必须具有与它所覆盖的方法相同或更宽松的访问级别。