개인공부/java
기본형 vs 참조형 - 메서드 호출시
케잉
2024. 5. 16. 23:15
변수가 기본형일 때
public class MethodChange1 {
public static void main(String[] args) {
int a = 10;
System.out.println("메서드 호출 전: a = " + a);
changePrimitive(a);
System.out.println("메서드 호출 후: a = " + a);
}
static void changePrimitive (int x){ // a의 값 10을 넘겨서 받아서 10을 가지고 있음
x = 20; // 10과 20 둘다 가지고 있음
}
}

변수가 참조형일 때
public class MethodChange2 {
public static void main(String[] args) {
Data dataA = new Data();
dataA.value = 10;
System.out.println("메서드 호출 전: dataA.value값: " + dataA.value);
System.out.println("dataA = " + dataA);
changeReference(dataA);
System.out.println("메서드 호출 후: dataA.value값: " + dataA.value);
}
static void changeReference(Data dataX){ //dataA가 대입되면서 dataA의 참조값도 전달
System.out.println("dataX = " + dataX);
dataX.value = 20; // dataX와 dataA는 같은 참조값을 가지므로 dataA도 20이 됨
}
}
