[ 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 |