Linux论坛's Archiver

《开源》旗舰电子杂志2009年第1期火热下载!

sjktyr 发表于 2008-9-28 13:07

讨论下

昨天遇到一个java问题代码如下:
class Test{
      public void test01() {
         String name = "zhangsan";
        change(name);
        System.out.println("name:" + name);
     }
    public void change(String name){
           name = "Lisi"  
   }
}
最后的结果是zhangsan
谁能解释下为什么,还有怎么能让它输出Lisi:o

westsoftware 发表于 2008-9-28 19:49

:L :L
第一:
name不是Test的成员变量
public void change(String name){
           name = "Lisi"  
   }
这个name不是change(name);
这个只是一个普通传值的过程[code]
class TestT {
        String name;
        public void test01() {
                name = "zhangsan";
                change();
                System.out.println("name:" + name);
        }

        public void change(){
         name = "Lisi";  
}
}
[/code]

haitao_581 发表于 2008-11-8 16:09

:D

leedet 发表于 2008-11-15 19:06

呵呵。

grjboy30 发表于 2008-12-18 22:53

[code]change(name);
        System.out.println("name:" + name);[/code]

YC34YC个人认为 这个里面没有提到要打印change的值,只能算是一个复制语句,没有实质性的操作。就像2楼所说的,如果你想要答应出 change的值,你直接调用那个你复制后的方法就可以了


YC35YC不知道我这1年不编程的人说的是否正确,忘达人纠正 呵呵

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.