请问如何像c++那样实现数值传递
java中没有指针的概念
请问如果想在一个方法中有两个返回值
在c++中可以f(&a,&b)来将两个结果放在a,b中
在java中该如何实现呢?
先谢了
问题点数:20、回复次数:3Top
1 楼lightEIF(苍鹰)回复于 2004-12-02 21:26:45 得分 10
一样的,只不过你这个变量的作用域一定要合适,比如下面这个例子
public class PassObject
{
PassObject(){}
static void f(Struct struct)
{
struct.width =100;
struct.name="ORC";
struct.password ="lightEif";
}
public static void main(String[] args)
{
Struct struct=new Struct(10,"Eif","nightEif");
System.out.println(struct);
f(struct);
System.out.println(struct);
}
}
class Struct
{
int width=0;
String name;
String password;
Struct(int width,String name,String password)
{
this.width =width;
this.name=name;
this.password =password;
}
public String toString()
{
String tem=name+password+width;
return tem;
}
}
输出结果:
EifnightEif10
ORClightEif100
对于不可变对象不行,像字符串,每赋一次值都生成一个新的对象,内存地址指向不一样了,其他的只要不是用final修饰的,其对象可以这样用,类似于C++的传址,不是传值。Top
2 楼lightEIF(苍鹰)回复于 2004-12-02 21:29:05 得分 5
对于返回两个或者多个值一是改变参数的值,这样不行的话,直接返回一个集合。在这个集合里包含多个值。Top
3 楼zyg158((DD)OTP)回复于 2004-12-02 21:55:19 得分 5
是的,只要不是用final修饰的参数类型,其对象就可以直接用Top




