[Java] 클래스 멤버와 인스턴스 멤버 간의 참조와 호출

윤여준·2023년 8월 5일
0

자바[Java]

목록 보기
4/4

이 글에서 말하는 클래스 멤버는 클래스 변수와 클래스 메서드를 말하며, 인스턴스 멤버는 인스턴스 변수와 인스턴스 메서드를 말한다.

인스턴스 멤버가 클래스 멤버를 참조 또는 호출

인스턴스 멤버가 클래스 멤버를 참조 또는 호출하는 경우는 별 문제가 없다.

인스턴스 멤버가 존재하는 시점엔 클래스 멤버가 항상 존재하기 때문이다.

클래스 멤버는 클래스가 메모리에 로드될 때 생성되고, 인스턴스 멤버는 인스턴스가 만들어질 때 생성된다. 인스턴스가 만들어지려면 클래스가 메모리에 로드되어야 하기 때문에 인스턴스 멤버가 존재하는 시점엔 클래스 멤버가 항상 존재하는 것이다.

클래스 멤버가 인스턴스 멤버를 참조 또는 호출

클래스 멤버가 인스턴스 멤버를 참조 또는 호출하는 경우에는 인스턴스를 생성해야 한다.

왜냐하면 클래스 멤버가 존재하는 시점에는 인스턴스 멤버가 존재하지 않을 수 있기 때문이다.

인스턴스 멤버는 인스턴스가 만들어져야 생성되지만, 클래스 멤버는 인스턴스가 만들어지지 않아도 메모리에 클래스가 로드되기만 하면 생성된다. 그렇기 때문에 클래스 멤버가 존재하지만 인스턴스 멤버가 존재하지 않을 수도 있다.

정리

인스턴스 멤버가 클래스 멤버를 참조 또는 호출할 때는 별 문제가 없지만, 클래스 멤버가 인스턴스 멤버를 참조 또는 호출할 때는 인스턴스를 생성해야만 한다. 그렇지 않으면 에러가 발생한다.

profile
Junior Backend Engineer

0개의 댓글