JAVA 方法传入的对象参数不能被重新初始化吗?只能改变对象的属性值?有什么内在原理么
privatestaticvoidss(DTOrders){System.err.println(s);s=newDTOrder();System.err.println...
private static void ss(DTOrder s) {
System.err.println(s);
s = new DTOrder();
System.err.println(s);
}
public static void main(String[] args) {
DTOrder o = new DTOrder();
ss(o);
System.err.println(o);
}
输出结果:
com.maike.declare.logistics.dt.model.DTOrder@50134894
com.maike.declare.logistics.dt.model.DTOrder@2957fcb0
com.maike.declare.logistics.dt.model.DTOrder@50134894 展开
System.err.println(s);
s = new DTOrder();
System.err.println(s);
}
public static void main(String[] args) {
DTOrder o = new DTOrder();
ss(o);
System.err.println(o);
}
输出结果:
com.maike.declare.logistics.dt.model.DTOrder@50134894
com.maike.declare.logistics.dt.model.DTOrder@2957fcb0
com.maike.declare.logistics.dt.model.DTOrder@50134894 展开
2个回答
展开全部
追问
也就是说, 其实o和s并不是同一个变量引用, 只是调用ss方法的时候把o指向的地址赋值给s参数, 让o和s指向同一个地址, 所以s是不能改变这个指向的,一改变就和o没有关系了,
是这样的么?
非常感谢!
追答
对,非常正确的理解
2016-12-13
展开全部
在你引用这个方法的时候,先是实例化了该对象。每次实例化相当于创建一个新的对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询