黑马程序员技术交流社区
标题:
有参方法。。
[打印本页]
作者:
魏冬
时间:
2012-11-16 21:53
标题:
有参方法。。
怎么才能把上面那个change的值传递到主方法里呢???
QQ截图20121116215108.png
(12.28 KB, 下载次数: 40)
下载附件
2012-11-16 21:52 上传
作者:
奚华
时间:
2012-11-17 00:40
本帖最后由 xmanxihua 于 2012-11-17 00:47 编辑
JAVA中参数传递使用的都是值传递,在你的代码中str引用了一个String对象,这个引用的副本被传到了change方法中,当change方法执行完后,引用的副本被丢弃了,最终str还是引用原来的String对象,另外String类的对象不能被改变,这样,change方法执行完毕,str仍然引用原来的String对象,并且这一个对象本身并没有被改变,所以,最终打印出的值不变。
public class 测试2{
public static String change()//返回一个String引用
{
return "你好";
}
public static void main(String[] args)
{
String str="Hello";
str=change();
System.out.println(str);
}
}
作者:
杨建峰
时间:
2012-11-17 12:04
change 方法 返回 值 是 void ,是不会传值 的, 楼主定义这个方法我感觉 本身 只是用来处理数据,而非返回数据,最主要的,str 变量 都是局部的,你在 change 里的所有操作,都不会变更MAIN里的东西。
public class 测试2{
static String str;
public static void change(String str1)
{
str = str1;
}
public static void main(String[] args)
{
//String str="Hello";
change("Hello !");
System.out.println(str);
}
}
复制代码
作者:
陈军
时间:
2012-11-20 11:04
你可以通过返回值的形式传递你改变的结果。
因为通常java是值传递的。通常不会在你方法内部修改后,就修改源。
(但是StringBuffer和StringBuilder等类似有点例外)。
所以你可以把修改的结果通过返回值的形式传递出来。再在外面赋值就行了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2