A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 万正 黑马帝   /  2012-3-24 22:18  /  1242 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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里该如何解决呢?

4 个回复

正序浏览
个人理解:
     swap(int a ,int b)方法传递的值的时候虽然代码传递进去的是swap(a,b);把a和b传递进去了,其实是其对应的值,2、3,相当于把这两个数字传递进去了,这个函数晕死完后2和3 是换了位置,但是main方法里面的a=2,b=3还没变化吧。不知道这样理解是否正确呢?
回复 使用道具 举报
Java函数在传递过程中只能够传值,不能传址。这样,函数的参数在函数内部做任何变化就都不会反映到外部调用者来。一个好的方法就是将参数列表改成数组。
回复 使用道具 举报
好像只能通过第三方变量来交换两个变量的值
回复 使用道具 举报
没看懂LZ想问什么,C#的ref表示什么呢?
表示没学过C#,杯具了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马