메서드 호출 방식 2가지
1. call by value 방식으로 화면에 출력해보자
============================코드============================
public class MethodExam_07 {
public static void call(int num) { // 200 값 저장
num = 100;
System.out.println("num >>> " + num);
} // call() 메서드 end
public static void main(String[] args) {
// 1. call by value 방식
int num = 200;
System.out.println("메서드 호출 전...");
System.out.println("num >>> " + num);
System.out.println();
call(num); // call() 메서드 생성
System.out.println("메서드 호출 후...");
System.out.println("num >>> " + num); // 200인 이유 : call 메서드가 끝나면 call의 num값이 초기화됨
}
}

★★★★★★★★★★★★★★★★★★★★★★★
2. call by reference 방식으로 화면에 출력해보자!
★★★★★★★★★★★★★★★★★★★★★★★
============================코드============================
public class MethodExam_08 {
public static void change(int[] array) { // array는 arr에서의 heap의 주소값 따라서 arr주소값을 복사했다는 것!
System.out.println("array >>> " + array);
for(int i = 0; i < array.length; i++) {
array[i] = array[i] * 10;
}
} // change() 메서드 end
public static void main(String[] args) {
// 2. call by reference 방식
int[] arr = new int[3];
arr[0] = 10; arr[1] = 20; arr[2] = 30;
System.out.println("arr >>> " + arr);
System.out.println("change() 메서드 호출 전...");
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] >>>" + arr[i]);
}
System.out.println();
change(arr); // arr은 heap의 주소값
System.out.println("change() 메서드 호출 후...");
for(int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] >>>" + arr[i]);
}
}
}
