메서드 사용하기 실습
문제 1 참조형과 참조형이 아닌 경우의 가장 큰 차이는 메서드 호출에서 찾아볼 수 있습니다. 다음 코드는 기본형 변수 value와 참조형 변수 arr을 addOne이라는 메서드에 전달합니다. 두 메서드 모두 전달받은 값에 1씩 더해주는데, 메서드를 실행한 후 전달한 값을 출력하면 서로 결과가 다릅니다. 코드를 실행해 참조형과 기본형이 어떻게 다른지 확인해보세요.
package javaStudy;
public class ReferenceTypeExam{
public static void main(String []args) {
ReferenceTypeExam exam = new ReferenceTypeExam();
// 기본형 변수 value1을 addOne에 전달합니다.
int value = 10;
exam.addOne(value);
System.out.println("기본형 변수의 값을 다른 메서드에서 변경한 결과: "+value);
// 참조형 변수 arr을 addOne에 전달합니다.
int []arr = {10};
exam.addOne(arr);
System.out.println("참조형 변수의 값을 다른 메서드에서 변경한 결과: "+arr[0]);
}
public void addOne(int value) {
value++;
}
public void addOne(int[] arr) {
for(int i = 0; i<arr.length ; i++) {
arr[i] ++;
}
}
}
실행결과
기본형 변수의 값을 다른 메서드에서 변경한 결과: 10
참조형 변수의 값을 다른 메서드에서 변경한 결과: 11