///////
Search
✳️

객체 지향의 클래스, 객체, 인스턴스 차이에 대해서 설명해 주세요.

클래스

객체의 설계도 혹은 틀
연관되어(객체) 있는 변수와 메서드의 집합

객체

현실 세계 속의 객체는 실제로 존재하는 것
소프트웨어 관점에서의 객체는 소프트웨어 세계에 구현할 대상
클래스의 인스턴스
모든 인스턴스를 대표하는 포괄적인 의미
OOP 관점에선 클래스의 타입으로 선언되었을 때 객체라고 함

인스턴스

설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
→ 객체를 소프트웨어에 실체화하면 인스턴스라고 부름
→ 실체화되었다는 건 메모리에 할당되었다는 뜻
OOP 관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부름

클래스 vs 객체

클래스는 설계도, 객체는 설계도로 구현한 모든 대상

객체 vs 인스턴스

클래스의 타입으로 선언되었을 때 ‘객체’
그 객체가 메모리에 할당되어 실제 사용될 때 ‘인스턴스’
객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가까움
→ 객체는 ‘실체’, 인스턴스는 ‘관계’에 초점을 맞춤
인스턴스는 객체와 클래스의 관계를 설명할 때 적합
ex) Animal cat = new Animal()
→ 여기서 cat은 ‘객체’의 표현이 적합하고, cat은 Animal의 ‘인스턴스’ 라는 표현이 적합하다.