黑马程序员技术交流社区
标题:
作用域问题。
[打印本页]
作者:
world.net
时间:
2015-6-12 08:43
标题:
作用域问题。
为什么输出结果是AB:B啊?,如果输出语句写在function方法中输出结果是AB:AB
class Test{
public static void main(String[] args){
StringBuffer sf1=new StringBuffer("A");
StringBuffer sf2=new StringBuffer("B");
function(sf1,sf2);
System.out.println(sf1+":"+sf2);//此处输出结果为AB:B
}
public static void function(StringBuffer sf1,StringBuffer sf2){
sf1.append(sf2);
sf2=sf1;
}
}
复制代码
作者:
q19871127
时间:
2015-6-12 09:20
本帖最后由 q19871127 于 2015-6-12 12:37 编辑
方法中的sf1与sf2只是两个引用地址 你让他们两个相等并没有改变两个buffer的内容 function方法重的变量sf1和fs2跟main方法中的是没有什么关系的 你改变function中变量的引用不会改变main方法中变量的引用
而append是改变了buffer中的值
作者:
xbutterflyx
时间:
2015-6-12 13:32
楼上正解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2