[ Call by Value와 Call by Reference를 메소드 매개변수로 전달해보고 값 들의 변화를 확인해보기]


package kr.momento.first;


public class ReferenceCall {

public static void add(int intVar){ // add(int) Method

intVar = intVar + 1;

        System.out.println("add(int) 결과: " + intVar);

    }

public static void add(int[] intArr){ // add(int[]) Method

        System.out.print("add(int[]) 결과: ");

        for(int i=0; i< intArr.length; i++){

        intArr[i] = intArr[i] + 1;

            System.out.print(intArr[i] + " ");

        }

        System.out.println();

    }

public static void main(String[] args) {

 

        // 1. Call by Value : 값에 의한 호출

        System.out.println("1. Call by Value !");

        int a = 100;

        add(a);

        System.out.println("add(int) 호출후 값: " + a);

        System.out.println("---------------------");

        

        // 2. Call by Reference : 참조 주소 값에 의한 호출

        // 배열을 이용하여 호출 확인

        System.out.println("2. Call by Reference !");

        int [] array = {100, 200, 300};

        add(array);

        System.out.print("add(int[]) 호출후 값: ");

        for(int i=0; i< array.length; i++){

            System.out.print(array[i] + " ");

        }

        System.out.println();

        System.out.println("---------------------");

        

        // 3. reference(주소)가 아닌 그 Value(값)를 호출한 경우는 Call by Value

        System.out.println("3. Call by Test !");

        add(array[0]);

        System.out.println("add(int) 호출후 값: " + array[0]);

    }

}

'Development > JAVA' 카테고리의 다른 글

[JAVA] 게시판 예제 - 1 (배열, Scanner)  (0) 2016.08.24
[JAVA] Scanner 문자열 입력  (0) 2016.08.24
[JAVA] 배열  (0) 2016.08.24
[JAVA] 데이터 타입  (0) 2016.08.18
[JAVA] 간단한 개념 정리 [JVM, GC]  (0) 2016.08.18

+ Recent posts