53. Java 类和对象 - 什么是值传递?

85 阅读1分钟

53. Java 类和对象 - 什么是值传递?

在 Java 中,当我们把 基元数据类型(如 intdoubleboolean 等)作为参数传递给方法时,采用的是 值传递(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 方法参数的本质:值传递!

  • 基础数据类型参数 —— 传递值的副本,不影响外部变量。