클래스
•
객체의 설계도 혹은 틀
•
연관되어(객체) 있는 변수와 메서드의 집합
객체
•
현실 세계 속의 객체는 실제로 존재하는 것
•
소프트웨어 관점에서의 객체는 소프트웨어 세계에 구현할 대상
•
클래스의 인스턴스
•
모든 인스턴스를 대표하는 포괄적인 의미
•
OOP 관점에선 클래스의 타입으로 선언되었을 때 객체라고 함
인스턴스
•
설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
→ 객체를 소프트웨어에 실체화하면 인스턴스라고 부름
→ 실체화되었다는 건 메모리에 할당되었다는 뜻
•
OOP 관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부름
클래스 vs 객체
클래스는 설계도, 객체는 설계도로 구현한 모든 대상
객체 vs 인스턴스
→ 객체는 ‘실체’, 인스턴스는 ‘관계’에 초점을 맞춤
→ 인스턴스는 객체와 클래스의 관계를 설명할 때 적합
ex) Animal cat = new Animal()
→ 여기서 cat은 ‘객체’의 표현이 적합하고, cat은 Animal의 ‘인스턴스’ 라는 표현이 적합하다.