작성
·
343
5
안녕하세요. 우선 매번 좋은 강의 올려주셔서 정말 감사합니다^^
질문이 있는데 클래스 로딩이 끝나고 나서 heap 영역에 인스턴스 관련 정보가 들어가 있고
Class<Book> bookClass = Book.class 를 통해 인스턴스를 가져올 수 있다고 했는데
그러면 이 인스턴스는 new Book() 으로 생성된 인스턴스와는 다른 건가요?
실제 멤버변수의 값을 가져오기 위해서는 왜 new Book() 으로 인스턴스를 생성해야 하는지 궁금합니다.
그리고 Book.class 로 가져오는 인스턴스와 new Book() 으로 생성된 인스턴스가 다르다면 어떻게 다른지도 알 수 있을까요?
답변 1
7
Book.class와 New Book() 인스턴스는 타입부터가 다르니 당연히 다른 인스턴스죠. 실제 다른지는 인스턴스를 가지고 == 비교를 해보시면 될테구요. Book.class는 'Book 클래스'에 대한 정보를 담고 있는 인스턴지 Book 인스턴스가 아니기 때문에 Book 인스턴스의 멤버 변수값을 가져올 수 없습니다.
클래스와 인스턴스에 대해 좀 더 고민하고 공부해 보시기 바랍니다.