본문 바로가기

취업/준비

Class VS Object VS Instance

현실 세계의 객체(Object)를 소프트웨어에서 클래스(Class)라는 설계도로 표현하고, 클래스를 통해 생성하면 인스턴스(Instance)가 된다

 

Object


  • 어떤 역할을 하는 주체.
  • 상태와 동작을 가진다.
  • OOP에서는 이를 소프트웨어로 구현하고자 한다. → Class

Class


  • Object(객체)를 여러 개 만들기 위한 설계도
  • field와 method를 가진다.
    • 이를 통해 객체의 상태와 동작을 표현한다.

Instance


  • 소프트웨어에서 Class를 통해 생성하여 메모리에 할당하면 인스턴스(Instance)라고 한다.
  • 즉, Object가 실체화되면 Instance라고 하는 것.
  • 실체화할 때 Class를 사용한다.
  • Object는 Class의 Instance
  • 반면, 실행 프로세스는 프로그램의 Instance이기도 하므로, Class와 Object의 관계에서 한정지어 사용할 필요는 없다.
  • 포괄적인 의미 : Instance는 어떤 원본으로부터 생성된 복제본
/* Animal Class */
public class Animal {
	...
}

/* Object와 Instance */
public class Main {
	public static void main(String[] args) {
		Animal cat, dog; // 'Object'
		// Instance화
		cat = new Animal(); // cat은 Animal Class의 'Instance'(Object를 메모리에 할당)
		dog = new Animal(); // dog은 Animal Class의 'Instance'(Object를 메모리에 할당)
	}
}

 

 

References