输出的d为什么是“badword”,而不是“goodwordgood” - 爱问答

(爱问答)

输出的d为什么是“badword”,而不是“goodwordgood”

public class A {

   public void change(StringBuffer a,StringBuffer b){   

    b=a;     

   b.append("good");    

  }    

  }


public class B{  

 StringBuffer c=new StringBuffer("good word");   

StringBuffer d=new StringBuffer("bad word");     

 public void change2(){   

 A a=new A();   

 a.change(c,d);  

  System.out.println("c:"+c.toString()); 

   System.out.println("d:"+d.toString());   }   }

建议以后的方法,写的时候都用返回值,你这样写小心把自己绕混,非基本类型复制的都是地址


假如你是包租婆,一栋楼有101,102,103之类的房间


101假设是你的StringBuffer c,假设101住个学生妹;102假设是你的StringBuffer d,假设102住个偶像


你的change方法就好比你拿了张a4纸画了两个圈圈,第一个圈圈写了阿拉伯数字101,第二个写了102,你让b = a那不就是让圈②等于圈①么,第一个圈圈写了什么?写了阿拉伯数字101对不对?


那么,你就把阿拉伯数字102用涂改液盖住,在上面重新写了圈①的内容101,那么第一个圈圈是101,第二个圈圈也是101


然后你操作a,也就是操作101房间,假设给学生妹送了一台苹果手机


那么请问从头到尾102房间你有什么赋值行为么?我说了非基本类型复制的都是地址,也就是说只复制个房间号,这个操作只是写房间号,只是写房间号!和房间里住个什么人根本没有半毛钱关系!


【那么什么时候有关系?】


如果数字1表示学生妹,2表示偶像


int c = 1;

int d = 2;


public void change (int a, int b) 

{

    b = a;

    a += 10;

}


这样的话,b = a的操作就是让102的房间住进和101同样的人,101住着一个学生妹,那么就让102也住进一个学生妹,然后你给101的学生妹一个苹果手机,那么,101的学生妹有个手机,102只有个学生妹


int是java基本类型


相关标签:word

下一篇:求推荐大学生用的笔记本电脑

上一篇:5G如何操作

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?