| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1391 人关注过本帖
标题:关于两数交换的问题
只看楼主 加入收藏
lcnhyf1986
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-16
收藏
 问题点数:0 回复次数:9 
关于两数交换的问题
class()
{ int a1;int a2;
A(int i,int j)
{a1=i;a2=j;}
}
使用sawp()方法交换A类的两个对象的成员变量的值.

但用到对象是引用传地址,请问怎么才能实现这个功能>
搜索更多相关主题的帖子: int 变量 对象 sawp class 
2007-04-04 22:38
changyawei
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-11-3
收藏
得分:0 

public void swap(int a1,int a2)
{
int temp = a1;
a1 = a2;
a2 = temp;
} 这就是交换算法

2007-04-05 07:40
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
对于int值这样的数据,交换是没有用的,出了这个方法以后,a1还是以前的a1,a2还是以前的a2

可惜不是你,陪我到最后
2007-04-05 09:11
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
收藏
得分:0 
为什么呢!怎么理解你的这句话!能举个例子说明下吗
2007-04-05 12:56
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
public void swap(int a1,int a2)
{
int temp = a1;
a1 = a2;
a2 = temp;
}

int a=19;
int b=39;
swap(a,b);
System.out.println("a="+a);
Sysetm.out.println("b="+b);
你会发现ab的值依然没有变,

可惜不是你,陪我到最后
2007-04-05 13:07
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
收藏
得分:0 

你的这个例子我一看就懂了!我知道是这样。。但我就是不知道原因。。还有那个。如果你传的是对象,那个值就会改变是不 。。。但我还是不知道原因。。是不是对象就好比是C++里的指针啊!好不就是把你的那个赋值的构造方法指向那个没有值的构造方法啊

2007-04-05 13:18
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

如果是指针,那就可以改变其值了,问题是JAVA里面只有传值

当参数为基本数据类型是,传的是该数据的拷贝值

当参数为对象时,传的是该对象的引用的拷贝值


可惜不是你,陪我到最后
2007-04-05 13:33
beyond_p
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2007-1-17
收藏
得分:0 
public class A {
public void swap() {
int temp = a;
a = b;
b = temp;
}
int a = 19;
int b = 39;
public static void main(String[] args) {
A g = new A();
g.swap();
System.out.println("a=" + g.a);
System.out.println("b=" + g.b);
}
}
结果:
a=39
b=19


LZ指的是这个意思吗?

越是深入的学习,就越来越感觉到自己知道的太少了...
2007-04-05 17:42
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
LZ应该是想问如何传递基本数据类型的引用给函数吧?

java的基本数据类型传递都是传值,但是幸运的是,java为每一个数据类型都封装了一个类

你用Integer代替int就可以了

[此贴子已经被作者于2007-4-5 19:39:39编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-04-05 19:39
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
刚刚看了下docs,发现Integer没有方法能够改变构造他的int数据,那不是等于Integer也不能够实现swap()?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-04-05 20:27
快速回复:关于两数交换的问题
数据加载中...
 
   



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

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