Cat 클래스의 필드는 private String name;
인스턴스 메소드는 getName(), setName()
psvm {
Cat cat1 = new Cat("고양이1");
Cat cat2 = new Cat("고양이2");
change(cat1, cat2);
System.out.println(cat1.getName());
System.out.println(cat2.getName());
}
static void change(Cat cat1, Cat cat2){
cat1 = new Cat("이름없는 고양이1");
cat2.setName("이름없는 고양이2");
}
! 정답 !
고양이1
이름없는 고양이2
=> 함수 파라미터에서 Cat cat1으로 선언된 객체변수는 main의 cat1을 참조하였으나, 함수 실행 중 new 연산자를 통해 새로운 객체를 참조하게 됨.
main의 cat1은 여전히 고양이1 객체를 참조하고 change함수 속 cat1은 이름없는 고양이1 객체를 참조하게 됨.