객체 문제01

백다진·2023년 12월 27일
0

답은 뭐가 나올까?

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 객체를 참조하게 됨.

profile
awsome

0개의 댓글