Java 中 void 和 non-void 方法之间的区别

2025年6月24日 | 阅读 4 分钟

方法根据是否返回值可以分为 void 方法和非 void 方法。

Java 方法

Java 中的方法是执行特定任务的代码块。方法可以提高代码的可重用性、模块化和可读性。方法可以是

  • 预定义的(如 System.out.println())
  • 用户定义的(如 addNumbers())

Void 方法

Void 方法是不返回任何值的。它主要用于执行操作,例如显示输出、修改变量或更新数据库。当需要执行一个动作但方法完成后不需要任何数据时,Void 方法是理想的选择。

由于它不返回值,所以方法的返回类型声明为 void。

语法

优点

  • 编写和理解简单。
  • 最适合简单的一次性操作。
  • 适用于 UI 或控制台输出。

缺点

  • 不返回任何反馈或结果。
  • 不能参与表达式。

何时使用非 Void 方法?

  • 计算总账单金额。
  • 从数据库获取数据。
  • 验证用户凭据(例如,boolean validateUser())

Void 方法示例

输出

Hello, this is a void method!

解释: displayMessage() 方法执行一个任务(打印),但不返回任何内容。其声明中的 void 关键字表明了这一点。在 main() 方法中,使用对象 obj 调用该方法,并将消息打印到控制台。

非 Void 方法

非 Void 方法返回特定数据类型的值,如 int、double、String,甚至是对象。返回类型在方法签名中显式声明,并且方法必须使用 return 语句返回值。当一个方法需要执行计算或获取一个结果并在程序其他地方使用时,就会使用非 Void 方法。

语法

优点

  • 返回有价值的数据以供进一步处理。
  • 提高代码的模块化和可重用性。
  • 通过返回值进行决策。

缺点

  • 必须适当地处理返回类型。
  • 在返回逻辑方面稍微复杂一些。

何时使用 Void 方法?

  • 将错误记录到文件。
  • 更新 UI 组件。
  • 向用户显示信息。

非 Void 方法示例

输出

Sum: 15

解释 add() 方法接收两个整数,计算它们的和,并使用 return 语句提供结果。然后可以将结果存储在变量中或在表达式中使用。

Void 和非 Void 方法的区别

方面

Void 方法

非 Void 方法

返回值

void(不返回任何值)

返回特定数据类型(例如,int、double、String)。

Return Statement (返回语句)

不需要 return 语句。

需要一个 return 语句,并带有指定类型的值。

用途

仅用于执行操作(例如,打印、修改变量)。

用于计算并返回一个值以供将来使用。

Calling Method (调用方法)

独立调用,不提供返回值。

被调用,通常赋值给一个变量或用于表达式。

示例

void displayMessage()

int add(int a, int b)

Call Behavior (调用行为)

obj.displayMessage();

int sum = obj.add(5, 10);

Void 和非 Void 方法的选择题

1. void 方法返回什么?

  1. 0
  2. Null
  3. 什么都没有
  4. "void"
 

答案:c)

解释: Java 中的 void 方法不返回任何东西。这正是 void 的字面意思——它表示没有返回值。


2. 下列哪个是有效的 void 方法声明?

  1. int methodName()
  2. void methodName()
  3. methodName void()
  4. void:methodName()
 

答案:b)

解释: Java 中有效的 void 方法声明包括访问修饰符、void 返回类型、方法名称、括号(带或不带参数)以及方法体。


3. 哪个关键字用于从非 void 方法返回一个值?

  1. exit
  2. break
  3. return
  4. stop
 

答案:c)

解释: 在非 void 方法中,return 用于将值传回给调用者。


4. 哪种方法类型允许您将其结果赋值给一个变量?

  1. Void
  2. Non-void
  3. 静态
  4. Final
 

答案:b)

解释: 在 Java 中,如果一个方法有返回类型(如 int、String、boolean 等),您可以将其结果赋值给一个变量。


5. 如果一个非 void 方法不返回值会怎样?

  1. 编译时有警告
  2. 编译错误
  3. 正常执行
  4. 返回 null
 

答案:b)

解释: 如果 Java 中的非 void 方法不返回值,编译器会抛出错误,因为它期望一个与声明的返回类型匹配的 return 语句。