public class Test{
String str=new String("good");//成员变量,并给其赋值为“good”,
char[] ch={'a','b','c'};//声明char类型的数组,其中ch[0]='a'
public void change(String str,char ch[]){ //有参数的方法
str="test ok";//进入方法,str的值为“text ok”
ch[0]='g';//数组的第一个元素由'a'改为'g'
}
public static void main(String args[]){
Test t=new Test();//创建对象
System.out.println(t.str);//因为没有进入方法内部,所以调用的是成员属性,输出good
t.change(t.str,t.ch);//调用方法,t.ch={'a','b','c'}它的表达式则为t.change("good",t.ch)
System.out.print(t.str+"and");
/*虽然在方法内部,即str的值为test ok但是呢,它没有返回给成员变量str,因此t.str调用的仍然是成员变量str="good"的值所以,此时输出goodand如果想输出你要的那个test okand则应将代码改为
public class Test {
String str=new String("good");
char[] ch={'a','b','c'};
public String change(String str,char ch[]){
str="test ok";
ch[0]='g';
return str;
}
public static void main(String args[]){
Test t=new Test();
System.out.println(t.str);
t.change(t.str,t.ch);
//输出goodokandgbc
System.out.print(t.str+"and");
System.out.println(t.ch);
//输出为test okandgbc
System.out.print(t.change(t.str,t.ch)+"and");
System.out.print(t.ch);
}
}
*/
}
}
|