2013-09-30 4 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

String과 마찬가지로 Integer는 최종 클래스입니다. 맞습니까? – diegoaguilar

+0

다음은 코드입니다. http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Integer.java – kosa