53. Java 类和对象 - 什么是值传递?
在 Java 中,当我们把 基元数据类型(如 int、double、boolean 等)作为参数传递给方法时,采用的是 值传递(pass-by-value)机制。这是什么意思呢?让我来带大家轻松搞懂!✅
🎯 1. 什么是值传递?
值传递 就是:
调用方法时,会把实参的值复制一份传给方法的形参。所以,方法内部对参数的更改不会影响外部变量。
想象一下,你把一份简历复印了一份交给别人改——无论对复印件怎么涂改,原件依然完好无损!📄
🌟 2. 示例:基元类型的值传递
看个例子!
public class PassPrimitiveByValue {
public static void main(String[] args) {
int x = 3;
passMethod(x); // 传递 x 的值
System.out.println("After invoking passMethod, x = " + x); // 输出原变量的值
}
public static void passMethod(int p) {
p = 10; // 修改的是形参 p,而不是外部变量 x
}
}
✅ 运行结果:
After invoking passMethod, x = 3
为什么 x 还是 3?
passMethod(x)里传递的不是变量x本身,而是 x 的值的副本(此时是3)。p = 10只是改了副本p,并没有改变原来的x。- 当方法执行结束后,
p的生命周期结束,和原来的x没有任何联系。
所以,无论方法里怎么改 p,外面的 x 始终不受影响!💡
📚 4. 小结
Java 方法参数的本质:值传递!
- 基础数据类型参数 —— 传递值的副本,不影响外部变量。