Java参值传值机制

// Java 的参数传值机制_值传递

public class User{
    int id;
    String name;
    String pwd;

    public User(int id, String name){
        this.id = id;
        this.name = name;
    }

    public void testParameterTransfer0(User u){
        u.name = "pllee";
    }

    public void testParameterTransfer1(User u){
        u = new User(16, "lpl");
        
        // 新创建的对象的name值并未被输出
        System.out.println("新创建的对象u的地址为: " + u);
    }

    public static void main(String[] args){
        User u1 = new User(24, "lg");
        System.out.println("对象刚实例话是的地址为: " + u1);
        
        // 调用testParameterTransfer() 函数时值被更改 因为它们所指向的地址相同
        u1.testParameterTransfer0(u1); 
        System.out.println(u1.name);

        // 调用 testParameterTransfer() 函数会创建一个新的对象, 生成新的对象输出的u1 不变。
        // 想要变化的话 输出的对象应该是 u 对象
        u1.testParameterTransfer1(u1);
        System.out.println(u1.name);
        System.out.println("对象u1的地址为: " + u1);
    }
}

你可能感兴趣的:(Java参值传值机制)