6.2 객체와 클래스
붕어빵 틀(클래스)과 붕어빵(객체)
우리가 붕어빵을 먹으려면 무엇이 필요할까요? 가장 먼저 붕어빵 틀이 있어야 하고, 그 틀에 반죽과 팥을 넣어 구워내면 붕어빵이 나옵니다.
- 클래스(Class): 객체를 찍어내기 위한 설계도 또는 틀입니다. (예: 붕어빵 틀, 자동차 설계도)
- 객체(Object): 클래스(설계도)를 보고 실제로 만들어낸 결과물입니다. (예: 팥붕어빵, 슈크림붕어빵, 실제 자동차)

현실 세계에서 자동차를 만들려면 설계도가 필요하듯이, 프로그래밍에서도 객체를 생성하려면 먼저 ‘클래스(설계도)’를 만들어야 합니다.
인스턴스 (Instance)
클래스로부터 만들어진 객체를 특별히 그 클래스의 ‘인스턴스(Instance)’라고 부릅니다. “이 자동차 객체는 Car 클래스의 인스턴스야” 라고 말하죠.
설계도(클래스)는 하나지만, 그 설계도로 자동차(인스턴스)는 수천 대도 만들 수 있습니다. 이 자동차들은 모두 같은 설계도로 만들어졌지만, 서로 다른 색상을 가질 수 있고 독립적으로 달릴 수 있는 별개의 존재들입니다.

개발자의 역할
우리는 지금까지 자바를 배우면서 알게 모르게 많은 클래스를 사용해왔습니다.
하지만 지금까지는 객체를 만들기 위한 ‘설계도’로서 클래스를 사용했다기보다는, 단순히 코드를 실행하기 위한 공간(main() 메소드를 담는 그릇)으로만 사용했습니다.
이제부터는 여러분이 직접 설계자가 되어 클래스(설계도)를 작성하고, 그 설계도로 멋진 객체(부품)들을 조립하여 프로그램을 만들어 볼 것입니다.
서브목차