| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 882 人关注过本帖
标题:关于append()问题
取消只看楼主 加入收藏
亮剑
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-10-18
收藏
 问题点数:0 回复次数:2 
关于append()问题
public class Test {
public static void main(String args[]){
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
operator(a,b);
System.out.println(a);//输出是AB 这里为什么能输出AB呢 方法不是传过去的只是值吗 如果传的不是值那为什么下面的确输出的是B呢
System.out.println(b);//输出是B
}
public static void operator(StringBuffer x,StringBuffer y){
x.append(y);
System.out.println(x);//输出是AB
y=x;
System.out.println(y);//输出是AB
}
}
搜索更多相关主题的帖子: append StringBuffer public operator println 
2007-02-15 21:01
亮剑
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-10-18
收藏
得分:0 
但是操作append的是x不是a啊
x和a有不可能指向一个对象如果指向一个对象那下面的y和b也应该是指向同一个对象为什么System.out.println(b);打印的不是AB而是B呢
2007-02-15 21:48
亮剑
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-10-18
收藏
得分:0 
以下是引用Eastsun在2007-2-15 21:46:04的发言:
只要真正明白JAVA里面的方法中的参数是如何传递的,楼主的疑问就解决了.

operator(a,b);就相当于:

{
StringBuilder x =a;
StringBuilder y =b;
x.append(y);
System.out.println(x);//输出是AB
y=x;
System.out.println(y);//输出是AB
}

显然,执行之后:
a里面保存了"AB";
b里面保存的还是"B";
代码中的y=x根本对a,b(指这两个引用)没有影响,so...


x.append(y);
这个为什么会有影响呢

2007-02-15 21:50
快速回复:关于append()问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063155 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved