정보

객체, 클래스, 인스턴스의 차이

반응형

객체, 클래스, 인스턴스의 차이


객체(Object) : 소프트웨어 세계에 구현할 대상

클래스(Class) : 이를 구현하기 위한 설계도

인스턴스(Instance) : 소프트웨어 세계에 구현된 실체

객체(Object)는 현실의 대상(Object)과 비슷해서 상태나 행동을 가지지만, 소프트웨어 관점에서는 그저 콘셉에 불과하다. 소프트웨어에서 객체를 구현하기 위해서는 콘셉 이상으로 많은 것들을 사고하여 구현해야 하므로, 이를 위한 설계도로 클래스(Class)를 작성한다.

설계도를 바탕으로 객체를 소프트웨어에 실체화 하면, 그것이 인스턴스(Instance)가 되고, 이 과정을 인스턴스화(instantiation)라고 한다. 실체화된 인스턴스는 메모리에 할당된다.

개념적으로 인스턴스는 객체에 포함된다고 볼 수 있다. 하지만 둘 중에 소프트웨어 세계에 더 가깝다고 볼 수 있는 것은 인스턴스다.

하지만 객체나 인스턴스를 클래스로, 혹은 클래스를 객체나 인스턴스라고 해선 안된다. 건물의 설계도를 보고 건물이라고 하지 않고, 반대로 건물을 설계도라고 하지 않는 것과 같은 것이다.

반응형