Object  基本都是传引用的,String 例外,传值。
可以用 StringBuffer 。

解决方案 »

  1.   

    public String fun (String a)
    {
      a="hello,world"
    }String s = "df";
    String f = fun(s);
    //f = "hello,world"
      

  2.   

    public String fun (String a)
    {
      a="hello,world";
      return a;
    }String s = "df";
    String f = fun(s);
    //f = "hello,world" 
      

  3.   

    或者用 String [] a 吧。
    如果要 return 不如直接 return "h, w";fun(StringBuffer a){
      a=new StringBuffer("hello,world");
    }orfun(String [] a){
      a[0]="hello,world";
    }
      

  4.   

    我觉得借传递引用来改变参数的值,有局部变量全局化的倾向。我还是喜欢return result这种明了的方式
      

  5.   

    因为有多个参数要返回,所以不使用返回值。我试了试还是不行!
    public class method{
    public void fun(StringBuffer a){
    a=new StringBuffer("Hello,world");
    }
    public static void main(String[] args){
    System.out.println("start...");
    StringBuffer b=new StringBuffer();
    fun(b);
    System.out.println(b);
    }
    }
    大家帮帮忙!看看怎么回事?
      

  6.   

    可以把这个字符串放到一个CLASS里,函数的参数该为这个CLASS的类型
      

  7.   

    多返回值你就返回对象,或者collection嘛
      

  8.   

    public static void main(String[] args)
    不能引用公共方法。
    好像,StringBuffer 和 String 的行为模式一样。不好意思。还是用数组吧。public class method{
    String[] b=new String[1]; public void fun(String[] a){
    a[0]="Hello,world";
    } public static void main(String[] args){
    System.out.println("start...");
    new method();
    } method(){
    fun(b);
    System.out.println(b[0]);
    }
    }
      

  9.   

    如果只是传递一个String,直接返回String的做法是符合JAVA逻辑的。
    直接改变参数可以使用StringBuffer代替String作参数。
    如果有多个参数,而且都有可能修改,在这种情况下,作为一个JAVA程序员,你第一个想到的应该是“类”
      

  10.   

    Object  基本都是传引用的,String 例外,传值。
    可以用 StringBuffer 。没有这种说法。String也是传引用。但是String没有提供方法来改变自身的值,所以虽然有了引用也没有用
      

  11.   

    TO:vive(白起)
    StringBuffer为什么是传的值呢?
      

  12.   

    String和StringBuffer工作原理当然不一样了,StringBuffer是可以实现你的要求的,不过上面的程序写的有问题。
    fun(StringBuffer a){
      a=new StringBuffer("hello,world");
    }如果这样就是另外生成了一个StringBuffer,那当然是传递不出去的了。
    应该:
    fun(StringBuffer a){
      a.delete(0,ss.length());
      a.append("hello,world");
    }
    这样就可以了在参数中修改a的值了。
    不过正统的方法是不要在参数中修改值的,应该用return返回值,不止一个返回就用enumeration了。
      

  13.   

    String和StringBuffer工作原理当然不一样了,StringBuffer是可以实现你的要求的,不过上面的程序写的有问题。
    fun(StringBuffer a){
      a=new StringBuffer("hello,world");
    }如果这样就是另外生成了一个StringBuffer,那当然是传递不出去的了。
    正确的应该:
    fun(StringBuffer a){
      a.delete(0,a.length());
      a.append("hello,world");
    }
    这样就可以了在参数中修改a的值了。
    不过正统的方法是不要在参数中修改值的,应该用return返回值,不止一个返回就用enumeration了。
      

  14.   

    我前面两行是拷贝的别人的说法,然后加以批驳。不管什么对象,都是传递引用。你可以调用对象的方法来改变自身,但是你如果另外new一个对象给那个变量,是传不出去的,外面得到的还是原来那个对象
      

  15.   

    不管是StringBuffer 还是String, 在fun中,当你使用 a = ...的时候,局部变量a已经指向新的值,与传进的参数失去了联系,怎么可以改变得了他的内容。