public class TestString
{
String str = new String("good");
char[] ch = { 'a', 'b', 'c' }
public static void main(String[] args) {
TestString ex = new TestString();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public void change(String str, char ch[]) {
str = "test ok";
ch[0] = 'g';
}
}
楼主:
1、你要明白局部变量与成员变量的用法,当成员变量名与函数局部变量名重名时,默认使用局部变量,若想使用成员变量要用this,因此:
public void change(String str, char ch[]) {
str = "test ok";//此时的str是局部变量,即用红色标出的,是同一个局部变量,与上文定义的成员变量无关,此时局部变量str值为test ok。
//对象ex的成员变量str值仍然为good。
ch[0] = 'g';//在这里,ch[0]是上文的成员变量,其值为a,因为局部变量char ch[] 只是定义了char类型的引用,其值为null,不可能是ch[0].因此成员变量ch值为gbc。
2、在代码中用红色标出的是同一个变量,用蓝色标出的是同一个变量。
} |