public class Test1 {
 
    public static void changeStr(String str){
        str="welcome";
    }
    public static void main(String[] args) {
 
        String str="1234";
        changeStr(str);
        System.out.println(str);
    }
}
帮忙分析一下这段程序,如果要通过调用changeStr(str)使输出结果为“welcome”,程序应该怎么写?classstring

解决方案 »

  1.   

    public class Test1 { public static String changeStr(String str) {
    str = "welcome";
    return str;
    } public static void main(String[] args) { String str = "1234";
    str = changeStr(str);
    System.out.println(str);
    }
    }
      

  2.   

    thank you!我再看一下,不好意思,自己太菜了。
      

  3.   

    还可以这么搞
    public class Test1 {
     
        public static void changeStr(String[] str){
            str[0]="welcome";
        }
        public static void main(String[] args) {
     
            String[] str= {"1234"};
            changeStr(str);
            System.out.println(str[0]);
        }
    }
      

  4.   

    因为JAVA的参数传递是值传递,具体网上搜搜吧
      

  5.   

    你用的类方法changeStr(String str)中的str为局部变量,函数调用结束后,局部变量进行出栈操作。
      

  6.   

    上面解释的差不多了!这个网址里有个Java教程,我也在看,很适合新手
    http://www.51zxw.net/study.asp?vip=7950654  
      

  7.   

    public class Test1 {
     
        public static void changeStr(String str){
            str="welcome";
        }
        public static void main(String[] args) {
     
            String str="1234";
            changeStr(str);
            System.out.println(str);
        }
    }
    因为你这算是值传递,所以有返回值就行了。正解为:
    public class Test1 {
     
        public static String changeStr(String str){
            str="welcome";
            return str;
        }
        public static void main(String[] args) {
     
            String str="1234";
            //这里因为有返回值,所以直接输出就行
            System.out.println(changeStr(str););
        }
    }