黑马程序员技术交流社区

标题: 调用方法以后,输出的结果不变? [打印本页]

作者: gpalw    时间: 2015-11-10 21:14
标题: 调用方法以后,输出的结果不变?
publicclass Test1 {

publicstaticvoid changeStr(String str){

        str="welcome";

    }

    publicstaticvoid main(String[] args) {



        String str="1234";

        changeStr(str);

        System.out.println(str);

    }

}

输出结果为什么是1234?是因为值传递吗?不是太理解。。


作者: zhengtuwl    时间: 2015-11-10 22:34
变量使用的就近原则。
作者: 零尘    时间: 2015-11-11 15:57
就近原则,会优先调用方法体内的局部变量
作者: 黑夜中那颗星    时间: 2015-11-11 16:09
public static void changeStr(String str){   //这里得到的1234 相当于 String str = 1234;  这里的str和下面str是不同的变量
        str="welcome";   //这里改变的是本函数里面str的值,并不是改变下面那个
    }
    public static void main(String[] args) {
        String str="1234";
        changeStr(str);   //这里把str传进去,其实是把他的值1234传进去
        System.out.println(str);//所以这里打印的还是1234
    }

作者: limao3344    时间: 2015-11-11 18:27
我也来看看!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2