黑马程序员技术交流社区

标题: 变量交换的问题~ [打印本页]

作者: 万正    时间: 2012-3-24 22:18
标题: 变量交换的问题~
  1. class Demo1
  2. {
  3.         public static void main(String[] args)  {
  4.                 int a=2;
  5.                 int b=3;
  6.                 swap(a,b);
  7.                 System.out .println("out"+a+b);
  8.         }
  9.         public static void swap(int a ,int b){
  10.                 int temp =a;
  11.                 a=b;
  12.                 b=temp;
  13.                 System.out .println("in"+a+b);
  14.         }
  15. }
复制代码
运行结果:
in:3:2
out:2:3

c#里面可以在变量前加上ref关键字解决这一问题
java里该如何解决呢?

作者: 张一凡    时间: 2012-3-24 22:25
没看懂LZ想问什么,C#的ref表示什么呢?
表示没学过C#,杯具了。
作者: lipanfeng    时间: 2012-3-24 22:32
好像只能通过第三方变量来交换两个变量的值
作者: 杨朝辉    时间: 2012-3-24 23:02
Java函数在传递过程中只能够传值,不能传址。这样,函数的参数在函数内部做任何变化就都不会反映到外部调用者来。一个好的方法就是将参数列表改成数组。
作者: 冯建鹏    时间: 2012-3-25 00:24
个人理解:
     swap(int a ,int b)方法传递的值的时候虽然代码传递进去的是swap(a,b);把a和b传递进去了,其实是其对应的值,2、3,相当于把这两个数字传递进去了,这个函数晕死完后2和3 是换了位置,但是main方法里面的a=2,b=3还没变化吧。不知道这样理解是否正确呢?




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