Java 如何严格地按值传递?

java programming java 8object oriented programming更新于 2025/5/25 20:52:17

按值调用意味着使用参数作为值来调用方法。通过这种方式,参数值被传递给参数。

而按引用调用意味着使用参数作为引用来调用方法。通过这种方式,参数引用被传递给参数。

在按值调用中,对传递的参数所做的修改不会反映在调用者的作用域中,而在按引用调用中,对传递的参数所做的修改是持久的,并且更改会反映在调用者的作用域中。但 Java 仅使用按值调用。它创建引用的副本并将其作为值传递给方法。如果引用包含对象,则可以在方法中修改对象的值,但不能修改整个对象。

示例

public class Tester {
   public static void main(String[] args) {
      Point point = new Point();
      System.out.println("X: " +point.x + ", Y: " + point.y);
      updatePoint(point);
      System.out.println("X: " +point.x + ", Y: " + point.y);
   }
   public static void updatePoint(Point point) {
      point.x = 100;
      point.y = 100;
   }
}
class Point {
   public int x, y;
}

输出

X: 0, Y: 0
X: 100, Y: 100

相关文章