Call by Value — 실습 / 약 15분
세 가지 케이스(기본형 / 객체 필드 변경 / 참조 교체)를 직접 실행하며 결과를 눈으로 확인합니다.
CallByValue.java 파일에 다음 코드:
class User {
String name;
User(String name) { this.name = name; }
}
public class CallByValue {
static void changeNumber(int x) { x = 999; }
static void changeName(User u) { u.name = "Bob"; }
static void replaceUser(User u) { u = new User("Bob"); }
public static void main(String[] args) {
// 케이스 1: 기본형
int a = 1;
changeNumber(a);
System.out.println("케이스 1: " + a);
// 케이스 2: 객체 필드 변경
User user1 = new User("Alice");
changeName(user1);
System.out.println("케이스 2: " + user1.name);
// 케이스 3: 참조 교체
User user2 = new User("Alice");
replaceUser(user2);
System.out.println("케이스 3: " + user2.name);
}
}
$ javac CallByValue.java
$ java CallByValue
케이스 1: 1
케이스 2: Bob
케이스 3: Alice