# 클래스 vs 객체
보통 클래스와 객체와의 관계를 비유할 때 클래스
를 붕어빵틀
, 객체
를 붕어빵
처럼 표현하곤 한다. 이것을 Java가 객체를 생성할 때 사용하는 new 키워드를 사용하여 표현하면 아래와 같다.
붕어빵틀 붕어빵 = new 붕어빵틀();
붕어빵틀이라는 클래스에서 단순히 붕어빵을 찍어내기 때문에 나온 논리이다. 하지만 이것을 문장으로 표현하면 전혀 다른 의도로 해석된다.
새로운 붕어빵틀(new 붕어빵틀())을 만들었더니 붕어빵이 되었다?!
붕어빵틀은 단순히 붕어빵을 만드는 팩토리일 뿐이다. 붕어빵틀은 붕어빵의 클래스로 표현하기에는 애매한 부분이 있다.
클래스
는 실체가 아닌 분류에 대한 개념
이다. 실체
는 객체
이다.
클래스 : 객체
클래스 : 객체 = 곰 : 곰돌이 푸 = 사람 : 유재석 ≠ 붕어빵틀 : 붕어빵
곰돌이 푸
와 유재석
은 나이를 알 수 있고 키와 몸무게를 알 수 있다. 정보
를 가지고 있는 실체
이다. 즉 객체
이다.
곰
과 사람
은 나이를 알 수 없다. 즉 개념
을 나타내는 클래스
이다.
# References
김종민, 『스프링 입문을 위한 자바 객체 지향의 원리와 이해』, 위키북스(2015), p80-82.