| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1159 人关注过本帖
标题:Java中传递的到底是引用还是数值的问题?-->千里冰封转移
只看楼主 加入收藏
hardes
Rank: 1
等 级:新手上路
帖 子:322
专家分:0
注 册:2006-6-3
收藏
 问题点数:0 回复次数:17 
Java中传递的到底是引用还是数值的问题?-->千里冰封转移
看了很多书,老师讲课的时候也都强调了JAVA中除了基本数据类型之外其他的都传递的是引用!
在<<JAVA 编程思想>>一书中也是说传递的引用,可是我总觉得不对,不因该是传递的引用!
求教高手一个小程序让我理解下好不?
搜索更多相关主题的帖子: Java JAVA 千里冰封 数值 类型 
2007-03-18 10:46
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
发到J2SE比较好

淘宝杜琨
2007-03-18 10:48
hardes
Rank: 1
等 级:新手上路
帖 子:322
专家分:0
注 册:2006-6-3
收藏
得分:0 
这是J2SE的问题吗?
所谓的J2SE,J2EE,J2ME都只不过是JAVA的三个版本而已,可你别忘了在这三个平台上进行开发所使用的语言还是JAVA,我不觉得在J2EE里面发这帖子有什么问题!你能帮我解决下吗?

当神已无能为力,就让爷来普度众生吧!
2007-03-18 10:52
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
JAVA里面都是传值,只不过当是对象的时候,传的是引用的值

可惜不是你,陪我到最后
2007-03-18 10:52
hardes
Rank: 1
等 级:新手上路
帖 子:322
专家分:0
注 册:2006-6-3
收藏
得分:0 
回复:(千里冰封)JAVA里面都是传值,只不过当是对象的...
2楼的,你不觉得你说的话有问题吗?
这跟什么J2SE有关系吗?所谓的J2EE,J2SE,J2ME只不过是JAVA的三个版本,三个不同的平台而已!
而这三个平台所使用的开发语言都是JAVA语言,我这篇帖子发在J2EE里面有什么问题?

当神已无能为力,就让爷来普度众生吧!
2007-03-18 10:59
hardes
Rank: 1
等 级:新手上路
帖 子:322
专家分:0
注 册:2006-6-3
收藏
得分:0 

我就是说的对象的问题啊!
对象之间传递的是引用吗???
你写段代码出来让我看看到底传递的是什么??


当神已无能为力,就让爷来普度众生吧!
2007-03-18 11:02
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用hardes在2007-3-18 11:02:31的发言:

我就是说的对象的问题啊!
对象之间传递的是引用吗???
你写段代码出来让我看看到底传递的是什么??

传递的是引用的考贝


可惜不是你,陪我到最后
2007-03-18 11:07
hardes
Rank: 1
等 级:新手上路
帖 子:322
专家分:0
注 册:2006-6-3
收藏
得分:0 
我还是不能理解!
书上说的是引用,我都晕了.
现在你又说传递的是引用的拷贝??
怎么区别??


当神已无能为力,就让爷来普度众生吧!
2007-03-18 11:13
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

举个很简单的例子吧

我定义一个类叫Person,

[CODE]class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void setName(String s){
name=s;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public String toString(){
return "名字:"+name+",年龄:"+age;
}
}
public class Test{
public static void main(String[] args){
Person p1=new Person("王二小",15);
Person p2=new Person("刘胡兰",20);
changeName(p1);
System.out.println(p1);
changePerson(p2);
System.out.println(p2);

}
private static void changeName(Person p){
p.setName("新的名字");
System.out.println(p);

}
private static void changePerson(Person p){
p=new Person("全新",25);
System.out.println(p);
}
}[/CODE]

好好体会一下输出就知道了


可惜不是你,陪我到最后
2007-03-18 11:20
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
你会发现changePerson改变的只是一个拷贝的引用而已,当出了这个方法以后,p2还是原来那个p2

可惜不是你,陪我到最后
2007-03-18 11:21
快速回复:Java中传递的到底是引用还是数值的问题?-->千里冰封转移
数据加载中...
 
   



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

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