객체 지향 프로그래밍에서 객체란 무엇일까요?
그리고 객체 지향 프로그래밍에서 꼭 등장하는 클래스와 인스턴스란 또 무엇일까요?
이 개념들은 헷갈리기 쉽기 때문에 명확히 알고 있는 것이 중요하다고 생각합니다
객체(object)는 실제로 존재하는 개념 또는 사물을 의미합니다
그리고 이 객체를 정의해놓은 것을 클래스 라고 합니다
그래서 우리는 클래스를 이용하여 객체를 생성하게 됩니다
| 클래스 | 객체 |
|---|---|
| 제품 설계도 | 제품 |
| TV 설계도 | TV |
| 붕어빵 기계 | 붕어빵 |
객체 = 속성(변수) + 기능(메서드)
인스턴스(instance)는 특정 클래스로부터 생성된 객체를 의미합니다
그래서 객체와 인스턴스, 두 용어는 자주 혼용됩니다
두 개념 모두 클래스에서 나온 실체라는 의미에서 사용되지만
용어상 인스턴스는 객체보다 좀 더 관계에 초점을 맞춘 단어!
'붕어빵'은 '붕어빵 틀'의 객체다 (🤔)
'붕어빵'은 '붕어빵 틀'의 인스턴스이다 (👍)