2013-09-30 31 views
1

我實際上看不到如何 Java管理對象的引用傳遞。我揭露了這種情況來說明我的疑問。Java參數傳遞和引用

public class Clase { 


    public void metodo (int i, Integer objeto) { 

     i++; 
     objeto++; 
    } 
} 

public class Main { 

    public static void main(String[] args) { 

     int   i = 5; 
     Integer  object = new Integer(8); 

     System.out.println(i); 
     System.out.println(object); 

     new Clase().metodo(i, object); 

     System.out.println(i); 
     System.out.println(object); 


    } 

} 

所有我越來越印刷是:

5
8
5
8

所以,只要我在方法中接收一個原始對象和一個對象,不應該從該方法改變對象嗎?

回答

3

您使用的示例對象(Integer)是不可變對象(與String相同)。嘗試與非不可變對象相同的示例,您將得到您所期望的答案。

+0

So Integer就像一個String,是最後一堂課,對嗎? – diegoaguilar

+0

這是代碼http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Integer.java – kosa