LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2367|回复: 4

问 java中可以一个函数返回多个值吗

[复制链接]
发表于 2003-7-27 11:52:41 | 显示全部楼层 |阅读模式
看到java书上说明
说是不可以使用参数引用方法传多个值

那么想返回多值的方法是怎样呢
难道需要定义返回类?
发表于 2003-7-27 13:11:35 | 显示全部楼层
可以用引用的,基本型不行。

传一个引用进去修改引用的值,不修改引用本身。
例如:传一个数组引用。


  1. ...
  2. int[] test = new int[MAX]
  3. int count = foo(test);
  4. ...

  5. int foo(int[] array) {
  6.     int count = 8;
  7.     for(int i = 0; i < count; i++) {
  8.           array[i] = 100;
  9.     }
  10.     return count;
  11. }
  12. ...
复制代码


如果在foo()中执行

  1. ...
  2.     array = anotherArray;
  3. ...
复制代码

就没有用。

 楼主| 发表于 2003-7-27 17:13:04 | 显示全部楼层

谢谢Eelkel

但是我想像c++那样使用基本类型
难道如果这样调用的话还是分配一个数组吗 这不是很不方便(也可能是因为java语言本身的限制吧)
你平时想返回多个是是什么做的
发表于 2003-7-27 18:20:57 | 显示全部楼层
如果是基本型,或者对象的值不能任意修改,就只能定义一个类来返回这些数据。例如:Integer的值不能修改,传引用也没有用。

在java中写程序很少会碰到需要返回多个值的情况。因为在java里头万物皆对象,所以返回的通常都是对象,类是现成的,不需要专门写。

象前面我给了例子,是不合理的。常规的做法是返回一个ArrayList对象。

例外总是有的,但是很少。如果很多,很可能设计的有问题。

btw:那个例子类似的代码我前几天在编写UI类里用过,目的是提高效率,减少对象的产生。在我的模块里,只有一个函数需要返回多个值。
 楼主| 发表于 2003-7-28 00:09:03 | 显示全部楼层
知道了 以前一直把它当成是C++来用
认为还有结构

看来理解的关键在于java中每一个都是类
看来和C++的设计思想不太一样 又有的学了
谢谢Eelkel
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表