Java 中的参数传递技术及示例

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

Java 中的参数传递是指在方法或函数之间传递数据的一种机制。Java 支持两种类型的参数传递技术

  1. 值传递
  2. 引用传递。

理解这些技术对于有效利用 Java 中的方法参数至关重要。

Parameter Passing Techniques in Java with Examples

参数类型

1. 形参

当变量及其对应的数据类型存在于函数或方法的定义或原型中时,就称为形参。一旦函数或方法被调用,它就作为传递的实参的占位符。函数或方法使用形参执行计算或操作。

语法

在上述语法中

  • returnType 表示函数的返回类型。
  • functionName 表示函数的名称。
  • dataType 表示形参的数据类型。
  • parameterName 表示形参的名称。

2. 实参

在函数或方法调用期间提供给函数或方法的、与形参对应的实际值或表达式称为实参,也称为参数。它提供了方法或函数将要处理的实际信息或值。

语法

functionName(argument)

在上述语法中

  • functionName 表示函数或方法的名称。
  • argument 表示作为参数传递给函数或方法的实际值或表达式。

1. 值传递

在值传递中,实参的值的副本被传递给方法的形参。在方法内对形参所做的任何修改都不会影响实参。

算法

步骤 1: 创建一个名为 CallByValueExample 的类。

步骤 2: 在 main 方法中

步骤 2.1: 声明一个整型变量 num 并为其赋值 10。

步骤 2.2: 调用方法前打印 num 的值。

步骤 2.3: 调用 modifyValue 方法,将 num 作为实参传递。

步骤 2.4: 调用方法后打印 num 的值。

步骤 3: 定义 modifyValue 方法,该方法接受一个整型参数 value

步骤 3.1: 通过为形参 value 赋值 20 来修改它。

步骤 3.2: 打印方法内部 value 的值。

实施

上述步骤的实现如下

文件名: CallByValueExample.java

输出

Before calling method: 10
Inside method: 20
After calling method: 10

复杂度分析

时间复杂度为 O(1)。

空间复杂度为 O(1)。

引用传递

"引用传递"是一种将参数传递给函数或方法的方法,在这种方法中,传递的是变量的内存地址(或引用)而不是值本身。这意味着在函数内部对形参所做的更改会影响调用环境中的实参。

在“引用传递”中,当传递变量的引用时,在函数内部对参数所做的任何修改都会传递回调用者。这是因为形参接收的是实际数据的引用(或指针)。

算法

步骤 1: 开始

步骤 2: 定义类 "CallByReference"

步骤 2.1: 声明实例变量:a (int) 和 b (int)

步骤 2.1: 定义一个构造函数来为 a 和 b 赋值

步骤 3: 在 "CallByReference" 类中定义 "changeValue" 方法

步骤 3.1: 接受一个类型为 "CallByReference" 的参数,名为 "obj"

步骤 3.2: 在 "obj.a" 的值上加 10。

步骤 3.3: 在 "obj.b" 的值上加 20。

步骤 4: 定义类 "Main"

步骤 4.1: 定义 main 方法

步骤 4.2: 创建一个名为 "object" 的 "CallByReference" 实例,值为 10 和 20

步骤 4.3: 打印 "object.a" 和 "object.b" 的值。

步骤 4.4: 调用 "object" 上的 "changeValue" 方法,并将 "object" 作为参数传递。

步骤 4.5: 打印 "object.a" 和 "object.b" 的更新值。

步骤 5: 结束

实施

上述步骤的实现如下

文件名: CallByReferenceExample.java

输出

Value of a: 10 & b: 20
Value of a: 20 & b: 40

复杂度分析

时间复杂度为 O(1)。

空间复杂度为 O(1)。