看这段代码:public class Test10
{
public static void main(String[] args)
{
String a = "hello";
Method method = new Method();
method.execute(a);
System.out.println(a);
}
}
class Method
{
public void execute(String name)
{
name = "world";
}
}
打印结果是“hello”,我想打印出“world”,java中有没有什么方法可以解决?

解决方案 »

  1.   

    应该没有吧。。
    可以用返回值的形式来处理public class Test10
    {
    public static void main(String[] args)
    {
    String a = "hello";
    Method method = new Method();
    a = method.execute(a);
    System.out.println(a);
    }
    }
    class Method
    {
    public String execute(String name)
    {
    return "world";
    }
    }
      

  2.   

    当然只会打印hello。
    你写的
    Method method = new Method();
    method.execute(a);
    这2句代码跟下面的打印完全没有任何的关系。你可以再execute()中将值返回出来。
    在main方法中;用a变量重新赋值;这样就能够打印world
      

  3.   

    楼主应该是学了c。java和c还是有些区别的,不要太在意c中的指针了,曾经有段时间,我也挺纠结指针的,但是java中就忘了这个概念好了
      

  4.   


    如果要返回改变多个值呢?public class Test10
    {
        public static void main(String[] args)
        {
            String a = "hello";    
            String b = "welcome";
            Method method = new Method();
            method.execute(a,b);
            System.out.println(a);            
        }
    }
    class Method
    {
        public void execute(String name,String name2)
        {
            name = "world";
            name = "java";
        }
    }
      

  5.   

    可以返回一个数组 C/C++里貌似不能返回数组吧  不记得了 Java里是可以 实际上返回的就是数组的引用,只不过在Java里没有指针这个概念而已
    返回改变多个值?为什么要返回改变呢 不明
    楼主可以这么想 Java里的引用变量就是指针 对它赋值操作等实际是在改变他的指针地址,用一个变量代替了指针而已
    希望没误导楼主
      

  6.   

    其实就是看到c++中可以这么定义函数function(int &a,int &b)才联想到java中变量取地址的问题。
      

  7.   

    定义name时用StringBuffer类来声明对象,java中在传入对象参数时,是类似于c++中的引用。
    String是静态类和StringBuffer类很相似,但在声明字符串对象有很大的差别。可以从字符串缓冲池上入手。