gpt4 book ai didi

JAVA 传递参数

转载 作者:行者123 更新时间:2023-11-30 08:07:10 26 4
gpt4 key购买 nike

我知道JAVA是按值传递参数(复制)。为什么此代码返回 John ?

public class User {
String name;
public static void main(String[] args) {
User u = new User();
u.name = "Sebastian";
System.out.println(u.name);
initialize(u);
System.out.println(u.name);
}
public static void initialize(User u){
u.name = "John";
System.out.println(u.name);
User u2 = new User();
u2.name="dsafsa";
u = u2;
System.out.println(u.name);
u.name = "Lilly";
System.out.println(u.name);
}
}

最佳答案

对对象u 的引用正在通过值(引用的值)传递给initialize 方法。这不会影响 u.name 的访问方式。

当您执行u.name = "John" 时,您正在更改传递到方法中的u(通过引用)。这会影响 main 方法中的相同 u

enter image description here

在此图中,Person person 就像您的 main 方法中的 User u 一样。在initialize中,您的User u就像Person anotherReferencetoTheSamePersonObject。因此,更新一个就会更新另一个。

关于JAVA 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com