java传对象是传的是引用

传了value给client,client又把value传给service,service中改变了value的值,client中value值也变了
程序输出:
a 123
b 456

public class Client {
    public static void main(String[] args) {
        Value aValue = new Value();
        aValue.setUsernameString("a");
        aValue.setPasswordString("123");
        System.out.println(aValue.getUsernameString() + " " + aValue.getPasswordString());
        Service service = new Service(aValue);
        System.out.println(aValue.getUsernameString() + " " + aValue.getPasswordString());
    }
}
package text_send_value;

public class Service {
    Value aValue;
    public Service(Value a) {
        aValue = a;
        aValue.setUsernameString("b");
        aValue.setPasswordString("456");
        //添加1处:aValue = null;
    }
}
package text_send_value;

public class Value {
    private String usernameString;
    private String passwordString;

    public String getUsernameString() {
        return usernameString;
    }
    public void setUsernameString(String usernameString) {
        this.usernameString = usernameString;
    }
    public String getPasswordString() {
        return passwordString;
    }
    public void setPasswordString(String passwordString) {
        this.passwordString = passwordString;
    }
}

添加1处:赋值符号“=”会改变这引用的指向因为对象本身是不会变的,但对象自身的set方法改变自己内部值
程序输出
a 123
b 456
不会报错在 [添加1处]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值