当前位置:编程学习 > JAVA >>

输出的结果为什么是那样的?···

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.println(ex.ch); 

  



  

public void change(String str,char ch[]){ 

   str="test.ok";

   ch[0]='g';


}  
java String --------------------编程问答-------------------- 打印:
goodand
gbc

change函数没有改变ex对象的str值,所以str不变。
char[]引用传进去,第一个被改了。所以是gbc --------------------编程问答-------------------- 你这是一个面试题吧..
考的是对String和char的理解

打印:
goodand
gbc


String类的本质是字符数组char[], 并且其值不可改变,
所以str="test.ok"; 无效 --------------------编程问答-------------------- change()中的str和传进来的ex.str是两个变量,但值相同,执行str="test.ok"后,str的值改变指向"test.ok",但ex.str却没有任何变化,所以还是会输出原来的值
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,