java에서의 값 전달과 인용 전달의 차이 분석

전송 값 - 전송 기본 데이터 형식 매개 변수

public    class           PassValue{
    static void exchange(int a, int b){// , a,b
        int temp;
        temp = a;
        a = b;
        b = temp;
    }
    public static void main(String[] args){
       int i = 10;
       int j = 100;
       System.out.println("before call: " + "i=" + i + "\t" + "j = " + j);//
        exchange(i, j);                                                                    // ,main
        System.out.println("after call: " + "i=" + i + "\t" + "j = " + j);//
    }
}
실행 결과:.설명: exchange(i, j)를 호출할 때 실제 매개 변수 i, j는 각각 값을 상응하는 형식 매개 변수 a, b에게 전달하고 실행 방법 exchange()를 실행할 때 형식 매개 변수 a, b의 값의 변화는 실제 매개 변수 i와 j의 값에 영향을 주지 않으며 i와 j의 값은 호출 전후에 변하지 않았다.참조 전달 -- 객체를 매개 변수로 사용합니다

        before call: i = 10        j = 100
        after    call: i = 10        j = 100
 
실행 결과:.설명:change(b,'c++', 45.5f)를 호출할 때 대상 b를 실제 매개 변수로 하고 인용을 상응하는 형식 매개 변수 a_에 전달한다.book, 실제로 a_책도 같은 대상을 가리킨다. 즉, 이 대상은 두 개의 인용 이름이 있다. b와 a_book.메서드 change()를 실행할 때 형식 매개 변수 a_책 조작은 실제 매개 변수 b에 대한 조작이다.

좋은 웹페이지 즐겨찾기