java高手请进 为什么输出结果是 good and gbc

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:45:29
public class Example{
String str=new String("good");
char[] ch={'a','b','c'};
public static void main(String[] args){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.println(ex.str+"and");
System.out.print(ex.ch);

}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';

}
}

你在public void change(String str,char ch[]){方法里改变的str是作为参数输入的str,所以无论怎样都无法改变原类中str的值。
应该这样:
this.str="test ok";
就可以了。

请在你的public void change
里面
str = new String("test ok");
-------------------------------
你不可以改变里面的值 但是你可以重新让它引用别的对象

public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
ch[]数组是引用.
在函数中只有传引用才会改变.

String是一经创建就不可以改变的,change()方法只是创建了一个新的字符串,"test ok",没有改变原来的str变量。而char[]的内容被change()改变。