在JAVA中能否象Delphi一样在参数前加一个Var,将值传回来!(10分)

  • 主题发起人 主题发起人 mycwcgr
  • 开始时间 开始时间
M

mycwcgr

Unregistered / Unconfirmed
GUEST, unregistred user!
在JAVA中能否象Delphi一样在参数前加一个Var,将值传回来!
下面的程序System.out.println(myto)显示的是null,也就是不能将值取回来!是否在Java中
只能使用 public String get_myto()这样的方式将值取回来!


//-----------------------------------------
public fk() {
String myto;
client_parse_get_conent(myto);
System.out.println(myto);
//这里显示为null
}

class client_parse_get_conent extends client_base {
String filename="cw";
public client_parse_get_conent(String myto ) {
myto=filename;
}
}
 
不行不行不行。
 
我刚看到一本书说 java 中方法参数的传递 都是值的拷贝, :)呵呵,
所以, 直接在方法中改变参数的值 是不行的,:)
 
传递的参数用对象就行了
 
java的参数传递都是By Value的,传递一个对象为参数,在这个对象中包含你想返回的信息就可以了!
 
楼上说的好像有问题吧,这样的传递方式是标准的By handle。
 
參數是基本類型還是對象? 這樣會有不同情況 如果想帶回返回值 就用引用传递
參考以下Think in java 中資料 現在有兩中說法
(1) Java按值传递任何东西。若将基本数据类型传递进入一个方法,会明确得到基本数据类型的一个副本。但若将一个句柄传递进入方法,得到的是句柄的副本。所以人们认为“一切”都按值传递。当然,这种说法也有一个前提:句柄肯定也会被传递。但Java的设计方案似乎有些超前,允许我们忽略(大多数时候)自己处理的是一个句柄。也就是说,它允许我们将句柄假想成“对象”,因为在发出方法调用时,系统会自动照管两者间的差异。
(2) Java主要按值传递(无自变量),但对象却是按引用传递的。得到这个结论的前提是句柄只是对象的一个“别名”,所以不考虑传递句柄的问题,而是直接指出“我准备传递对象”。由于将其传递进入一个方法时没有获得对象的一个本地副本,所以对象显然不是按值传递的。Sun公司似乎在某种程度上支持这一见解,因为它“保留但未实现”的关键字之一便是byvalue(按值)。但没人知道那个关键字什么时候可以发挥作用。
尽管存在两种不同的见解,但其间的分歧归根到底是由于对“句柄”的不同解释造成的。最重要的是理解一个句柄的传递会使调用者的对象发生意外的改变。
 
后退
顶部