码迷,mamicode.com
首页 > 其他好文 > 详细

其中假如把类b换成String,则s不会随着s1的改变而改变,为什么??

时间:2014-05-26 07:56:03      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:style   c   class   blog   http   a   

public class b{
    private String s;
    public b(String s){this.s=s;}
    public String getS(){return s;}
    public void setS(String s){this.s=s;}
}

public class a{
    private b s;
    public void setS(b s){this.s=s;}
    public b getS(){return s;}
    public void change(){s.setS("defgh");}    

    public static void main(String[] args){
        b s=new b("abc");
        b s1=new b("aaaaa");
        a ab=new a();
        ab.setS(s);
        ab.change();
        s1=ab.getS();
        System.out.println("s:"+s.getS());
        System.out.println("s1:"+s1.getS());
        System.out.println("s.equals(s1):"+s.equals(s1));        
    }
}

其运行结果如下

bubuko.com,布布扣

但是把类b换成String,则s不会随着s1的改变而改变,其运行结果如下

bubuko.com,布布扣

为什么呢??

是否String通过形参赋在类a中的s后是分配另一个内存空间,而不是两个变量引用同一个内存空间呢??

其中假如把类b换成String,则s不会随着s1的改变而改变,为什么??,布布扣,bubuko.com

其中假如把类b换成String,则s不会随着s1的改变而改变,为什么??

标签:style   c   class   blog   http   a   

原文地址:http://www.cnblogs.com/heysong/p/3747643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!