취업/준비
Class VS Object VS Instance
킹갓지유
2019. 10. 24. 20:17
현실 세계의 객체(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를 메모리에 할당)
}
}