CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

java 里有没有类似于 c 里面的引用参数(reference parameters)

楼主PrettyWish(苏杭)2002-05-13 14:21:07 在 Java / J2SE / 基础类 提问

如下程序:  
  class   Test  
  {  
  public   static   void   main(String[]   args)    
  {  
  int   x   =   3;  
  int   y   =   4;  
  mySwap(x,y);  
  System.out.println(x);  
  System.out.println(y);  
  }  
   
  static   void   mySwap(int   x,int   y)  
  {  
  int   iTmp   =   x;  
  x   =   y;  
  y   =   iTmp;  
  }  
  }  
  怎么样在mySwap方法中改变变量x、y的值,在c里可以通过mySwap(int   &x,int   &y)来实现,java里有没有类似的方法? 问题点数:20、回复次数:8Top

1 楼alphazhao(迷路飞羊)回复于 2002-05-13 14:32:46 得分 5

你可以在class   Test里面将x和y定义为静态的就行  
  如下:  
  public   class   Test{  
                  public   static   int   x   =   3;  
    public   static int   y   =   4;  
  public   static   void   main(String[]   args)  
  {  
  mySwap();  
  System.out.println(x);  
  System.out.println(y);  
  }  
   
  static   void   mySwap()  
  {  
                    int   i=Test.x;  
                    Test.x=Test.y;  
                    Test.y=i;  
  }  
  }  
  Top

2 楼alphazhao(迷路飞羊)回复于 2002-05-13 14:34:20 得分 0

否则改变行参是没有用的Top

3 楼nielinjie(学当活雷锋ing)回复于 2002-05-13 14:43:25 得分 0

楼上说的是特殊情况吧,很多时候是不能这样声明di,楼主的问题又不一定是在static里……Top

4 楼Koham(永恒)回复于 2002-05-13 14:45:30 得分 2

呵呵呵,用数组吧,用数组它是参数传递。  
   
  个人意见,仅供参考。Top

5 楼nielinjie(学当活雷锋ing)回复于 2002-05-13 14:45:31 得分 2

试试使用Integer对象来当参数。Top

6 楼dylanwolf()回复于 2002-05-13 14:48:38 得分 2

只能通过对象,   java里的都是   pass   by   value。Top

7 楼Koham(永恒)回复于 2002-05-13 14:49:35 得分 2

用数组吧,不是很困难的。  
   
  个人意见,仅供参考。Top

8 楼nielinjie(学当活雷锋ing)回复于 2002-05-13 14:54:44 得分 2

用Integer类,只能。Top

9 楼promark()回复于 2002-05-13 15:13:02 得分 5

还是建一个类把  
  class   swap{  
  int   x,y;  
  swap(int   x,int   y){  
  this.x=x;  
  this.y=y;  
  }  
  int   getx(){return   y;}  
  int   gety(){return   x;}  
  }  
  这样所有的int交换都可以了,使用就不用说了吧  
   
  建议:  
  1。学习java,要用对象的思维考虑问题  
  2。软件要考虑通用  
   
  以上仅供参考  
  Top

10 楼PrettyWish(苏杭)回复于 2002-05-13 16:34:39 得分 0

我并不是想知道怎么实现两个数的交换,我是想知道java里有没有这种reference   parameters   的用法,上次看了C#的一个例子,使关于C#里参数的类型的:  
  class   A  
  {  
  public   static   int   x;  
  int   y;  
  void   F(int[]   v,int   a,ref   int   b,out   int   c)  
  {  
  int   i   =   1;  
  c   =   a   +   b++;  
  }  
  }  
  上面的变量声明中,x是静态变量,y是非静态变量,v[0]是数组元素,a是值参数,b是引用参数,c是输出参数,i是局部变量。  
  所以我想知道java里有没有引用参数和输出参数的概念。  
  Top

相关问题

  • 请问C里面函数参数中是不是不能用引用参数
  • C#是否支持参数的引用传递
  • 急!!!用c语言哪种类型参数代替c++中的“引用型”参数???
  • C++的引用做形参和pascal的变量参数是不是一回事?
  • c#中相当于c++中“&”的符号是哪个? 怎样表示参数是 引用传递?
  • 引用参数问题
  • 请问如何用java实现类似于c中的传引用参数的函数
  • 请问在c++中引用参数和指针到底有什么区别?谢谢!
  • 请问,调用C++写的DLL,参数和返回值都是 char* , Delphi中如何定义,如何引用?
  • 数组的问题:C#中数组作为函数的参数时,传值还是传引用啊?

关键词

  • c#
  • 参数
  • myswap
  • 数组
  • 引用
  • 变量
  • 静态
  • 仅供参考
  • println
  • static

得分解答快速导航

  • 帖主:PrettyWish
  • alphazhao
  • Koham
  • nielinjie
  • dylanwolf
  • Koham
  • nielinjie
  • promark

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo