黑马程序员技术交流社区
标题:
变量指向问题
[打印本页]
作者:
15001162522
时间:
2015-11-15 21:23
标题:
变量指向问题
public class StrProblem {
String str = new String("good");
public void change(String str){
str="def";
}
public static void main(String[] args) {
StrProblem sp = new StrProblem();
sp.change(sp.str);
System.out.println(sp.str);
}
}
复制代码
如上,主函数下我已经调用了change方法,为何打印结果仍为good?求赐教
作者:
15001162522
时间:
2015-11-15 22:33
触底反弹 发表于 2015-11-15 21:23
你chang里面str = "def",这个str是形参变量str,而你输出的是成员变量str,当然输出结果是good。
你可以将 ...
其实 你说得我都知道 我想问的是更深层的值传递和引用传递…… 不过还是给你黑马币~~~~
作者:
周亚飞
时间:
2015-11-15 22:58
public class StrProblem {
String str = new String("good");
public void change(String str){
str="def";
}
public static void main(String[] args) {
StrProblem sp = new StrProblem(); //创建对象,成员变量显式初始化,str的值指向堆内存中的"good"字符串对象
sp.change(sp.str); //调用成员方法change,把成员变量的值传递给change方法的局部变量str
//就近原则str="def"中的str为局部变量,指向了常量池中的"def"
System.out.println(sp.str); //sp.str访问的是成员变量,值指向堆内存中的"good"字符串对象
}
}
作者:
小笨笨天
时间:
2015-11-17 20:24
额 值传递 引用传递 还有更深奥的? 不就是 传值 和传地址 吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2