본문 바로가기
Programming

객체와 인스턴스의 차이?!

by 개Foot/Dog발?! 2015. 3. 27.

페북에 돌아다니다가 설명하고자

나름 생각을 정리해봤다.


물론 정답은 아닐 수 있다고 보고, 시간날때 

제임스 고슬링이나 스트라우스트럽은 인스턴스와 객체를 뭐라고 말하고 있는지 찾아봐야 겠다.



OOP에서 언급하자면, 특히 대표적인 Java와 C++에서 언급하자면,

클래스야 분명하니 넘어가고

객체(object)와 인스턴스(instance)의차이는


1. 개별 각각 대상을 객체(object)라고 합니다. 예를 들어 

VehicleForm jeep; 

이라고 하면 jeep 을 직접적으로 지칭하여 부를때는 jeep객체라 하고

이 jeep은 VehicleForm의 인스턴스 이다. 즉, 특정 클래스로 부터 생성된 객체를 말할때 어떤 클래스의 인스턴스이다 라고 말합니다.

그래서 이 jeep 객체가 만들어져 메모리에 적재(load)되는 것 과정을 객체를 만든다고 하고 VehicleForm 인스턴스화(instantiated)한다고 합니다.


누구의 것이냐, 이것이냐의 관점차이라고 보면 될 듯 합니다.

그러나 실제 Java에서는 인스턴스라고 그냥 통칭해서 통용되기도 하는것 같네요.


2. 그리고 

C++에서도 그렇게 얘기들 하지만

Java에서는 잘 쓰이지 않는.


껍데기만 선언한 상태 객체가 비어 있어서 어떤 활동을 할 수 없는 상태를 그냥 객체라고 불리고

실제 메모리가 할당이 되어, 정상작동할 수 있는 객체를 인스턴스로 구분하는 경우가 있습니다.


VehicleForm jeep; 

에서 jeep은 객체 이며


jeep = new VehicleForm("V6",Diesel);

로 하게 되면 jeep은 이제서야 인스턴스로 불리기도 합니다.


즉, 1번에서 언급한 것과 비슷한 객체로서 독립적으로 사용가능한 메모리에 적재된 상태인 것은 인스턴스라고 하고 이 과정 또한 인스턴스화 한다고 하기도 합니다.


항상 논란이 되고 아리송 하기도 하는데

해외사이트도 그렇고 일반적으로 통용되는것은 딱히 정해진 것은 없어 보이네요.

'Programming' 카테고리의 다른 글

[기사][개발인] 매일 공부하는 ‘카톡’ 개발자, 김희준  (0) 2015.03.16
MIME Type  (0) 2014.09.27