java中一个类引用另一个类中的静态方法

sandsworlf 2006-07-13 09:48:29
比如classB中引用到classA中的一个静态方法(两个参数a,b),在调用这个静态方法之后,希望a,b的值能够互相调换。
请问这个静态方法怎么实现啊????!!!!
public class TestA {

public static void HHA(int a,int b){
int c;
c=a;
a=b;
b=c;
}
}

public class TestB {
public static void main(String[] args){
int a=10;
int b=11;
TestA.HHA(a,b);
System.out.println("===a=="+a+"====b="+b);

}
}

怎么使a与b的值互换啊?????
谢谢!!!
...全文
1250 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
SunnyJavaMoon 2006-07-14
  • 打赏
  • 举报
回复
1 java语言只能进行值传递并且不像C/C++有指针变量.
2 java语言有八个原始类型,int是其中的一种,把原始类型进行参数传递时,传的是值本身,所以不能改变main方法中a,b是值.
3 解决办法我只想了一个,构造整型的包装类,把int值用构造函数传到包装类中,用包装类的对象作参数进行传递,再得用包装类的方法对值操作.因为传递的是引用值.
构造方法: int a=10;
int b=11;
Integer aInt=new Integer(a);
Integer bInt=new Integer(b);
cyeahpro 2006-07-14
  • 打赏
  • 举报
回复
如果参数是2个int型是不行的。
java规定:
对于简单数据类型,是值传递,方法接收参数的值,但是不能改变它。如果要改变参数的值,则用引用数据类型。因为引用数据类型传入的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。
yoyo82 2006-07-14
  • 打赏
  • 举报
回复
拿分。别人都说了。
navence 2006-07-14
  • 打赏
  • 举报
回复
public static void main(String[] args){
int a=10;
int b=11;
int[] ab = { a, b };
swap(ab);
a=ab[0];
b=ab[1];
System.out.println("===a=="+a+"====b="+b);
}

public static void swap(int[] ab) {
int i = ab[1];
ab[1] = ab[0];
ab[0] = i;
}
OnlyFor_love 2006-07-14
  • 打赏
  • 举报
回复
由此可见 只有是引用的时候才有可能去改变值
System.out.println(h.m);
System.out.println(h.n);
OnlyFor_love 2006-07-14
  • 打赏
  • 举报
回复
public class Hello extends Test {

public static void main(String[] args) {
Hello h = new Hello();
h.m = 10;
h.n = 11;
h.change();
System.out.println(h.m);
System.out.println(h.n);
}
}
class Test{
public int m = 0;
public int n = 1;
public void change(){
int c;
c = this.m;
this.m = this.n;
this.n = c;
}
}
Voxer 2006-07-14
  • 打赏
  • 举报
回复
如果就是调换,何必这么麻烦,直接
ublic class TestB {
public static void main(String[] args){
int a=10;
int b=11;
int c =a;b=c;a=b;
System.out.println("===a=="+a+"====b="+b);

}
}
OnlyFor_love 2006-07-14
  • 打赏
  • 举报
回复
你的a和b只是在方法HHA()中实现了改变,但是你是传的值,所以输出的时候仍旧是原来的。
zhz586 2006-07-14
  • 打赏
  • 举报
回复
即使在方法内部改变了,外部a,b的值还是不会改变的
pdvv 2006-07-14
  • 打赏
  • 举报
回复
接分
geelpheels 2006-07-14
  • 打赏
  • 举报
回复
java的基本机制啊。你在开玩笑吧?
kingdoom 2006-07-13
  • 打赏
  • 举报
回复
这是一个作用域的问题,虽然你在方法里面把引用换了,但是出来后,原来的引用还是没变
yitianyidian 2006-07-13
  • 打赏
  • 举报
回复
JAVA是按值传递,不是按应用传递,
所以这样是达不到目的的,
即使在方法内部改变了,外部a,b的值还是不会改变的
lingkeylbh 2006-07-13
  • 打赏
  • 举报
回复
这个是传值和传引用的问题吧,传值进去是改不了的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧