몬그로이

왜 때문인지 혼란스러웠던 클래스 멤버와 인스턴스 멤버 설명해보기 본문

Dev 언어 정리 & Self QnA/Java

왜 때문인지 혼란스러웠던 클래스 멤버와 인스턴스 멤버 설명해보기

Mon Groy 2024. 4. 25. 18:00

얼핏 들으면 클래스 멤버와 인스턴스 멤버라는 단어는

클래스들의 모임과 인스턴스들의 모임으로 잘못 해석할 수 있다

더보기

이는 영어와 한국어가 섞인 단어라서 충분히 일어날 수 있는 일이다

직책을 앞에 붙이는 영어와 직책을 뒤에 붙이는 한국어..

이 둘이 만나 영어발음을 한글로 그대로 옮겨 적어 놓고 한국인이 읽으니

하지만 용어를 풀어서 쓰자면

클래스(에 속하는) 멤버와 인스턴스(에 속하는) 멤버

라고 하는게 더 적절하다

 

클래스를 생성할 때 여러가지 메서드와 필드(속성)을 정의한다

그때 클래스 소속으로 만들 것인지, 인스턴스 소속으로 만들 것인지 결정하게 되는데

클래스 소속으로 하기위해서는 static 이라는 키워드를 사용하면 된다

 

메서드나 필드를 클래스 멤버로 정의하면

클래스 뿐만 아니라 인스턴스에서 동일하게 가져가므로

클래스에서든 인스턴스에서든 사용할 수 있다

 

하지만 인스턴스 멤버로 정의하면

인스턴스가 생성될 때마다 초기화가 되버리는 것 뿐만 아니라

클래스의 다른 위치에서 사용하려 하더라도 인스턴스를 생성한 다음 다시 호출해야 한다

그렇기 때문에 인스턴스는 사용하기 힘들다

 

이런 특성들을 바탕으로 클래스 멤버는 정직원으로, 인스턴스 멤버는 프리랜서로 비유하면 되지 않을까?

 

프리랜서는 일시적으로 고용되어 일을 하므로 독립적이지만

정직원은 회사자체 소속이므로 각 부서와 긴밀하게 협업하기 때문이다