☕️Java 참조변수의 형변환, 클래스 멤버 인스턴스 멤버의 참조 호출

hamsang·2022년 7월 13일
0

Java

목록 보기
27/36
post-thumbnail

✏️ 참조변수의 형변환

상속관계에 있는 클래스 사이에서는 기본형 변수처럼 참조변수도 형변환이 가능하다.(자손타입 -> 조상타입, 조상타입->자손타입만 가능. 형제관계는 형변환이 불가능하다!)

  • 바로 윗 조상이나 자손이 아닌 조상의 조상으로도 형변환이 가능하다. 따라서 모든 참조변수는 모든 클래스의 조상인 Object클래스 타입으로 형변환이 가능하다.
  • 참조변수의 형 변환을 하면, 값은 바뀌지 않고 참조 가능한 멤버의 갯수만 달라진다.

✏️ 클래스 멤버와 인스턴스 멤버의 참조와 호출

클래스 멤버(스태틱 변수, 스태틱 메서드)는 인스턴스 멤버를 사용할 수 없습니다. 반면 인스턴스 멤버는 클래스 멤버를 호출할 수 있습니다.

이는 클래스 멤버와 인스턴스 멤버가 생성되는 시기와 관련이 있습니다!
클래스 멤버는 클래스가 메모리에 로딩될 때 생성됩니다. 인스턴스 멤버는 인스턴스가 생성될 때, 메모리에 로딩되고 생성됩니다. 이 둘은 메모리에 생성되는 시기와 장소가 다릅니다.

인스턴스가 생성되는 시점에는 항상 클래스가 메모리에 로딩되어 있음이 보장됩니다. 클래스가 존재하지 않는데 그 클래스의 인스턴스를 생성할 수는 없기 때문입니다. 따라서 인스턴스 멤버는 클래스 멤버를 참조할 수 있습니다.

하지만 클래스 멤버는 인스턴스 멤버를 사용할 수 없습니다. 클래스는 로딩되었지만 인스턴스가 존재하지 않는 경우도 있기 때문입니다!

profile
햄생

0개의 댓글

관련 채용 정보