| 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);
 }
 }
 
 */
 }
 }
 
 |