黑马程序员技术交流社区

标题: 作用域吗? [打印本页]

作者: 秦冲    时间: 2011-11-4 11:14
标题: 作用域吗?
  1. public class TestRef {

  2.         public static void main(String[] args) {
  3.                 StringBuffer a = new StringBuffer("a");
  4.                 StringBuffer b = new StringBuffer("b");
  5.                 append(a, b);
  6.                 System.out.println(a.toString() + "," + b.toString());
  7.                 b = a;
  8.                 System.out.println(a.toString() + "," + b.toString());
  9.         }

  10.         public static void append(StringBuffer a, StringBuffer b) {
  11.                 a.append(b);
  12.                 b = a;
  13.         }
  14. }
复制代码
输出结果:
ab,b
ab,ab

这个是因为作用域的问题吗?
作者: 齐国峰    时间: 2011-11-4 11:24
程序按顺序执行,第六行a="ab";b="b"第八行a="ab";b="ab".
作者: 吉许    时间: 2011-11-4 11:42
第六 行调用append方法将b添加到a,那么Buffer a中的内容就是ab了.程序第八行把a赋给b,Buffer b中的内容也成为ab了.
你在末尾
                System.out.println(a==b);
                System.out.println(a.equals(b));
显示的都是true.就明白他们是同一个对象了.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2