오늘의 스터디는
주제가 두 개이다 그 중 하나인 자유주제로
복습도 할 겸 가장 기초적이지만 가장 중요한
클래스와 객체에 대해 발표할 것이다
클래스는 객체를 생성하기 위한 '틀'또는'설계도'라 생각하면 좋다
이 틀은 붕어빵 틀이 될 수도 있고
자동차 틀이 될 수도 있다
나는 이 예제에서 자동차 틀을
자동차라는 클래스에는
다음과 같은 필드와 메소드가 존재 한다
필드: 색깔, 브랜드, 현재 속도 등
메소드: 자동차 소개, 가속하기, 브레이크
이 설계도를 바탕으로 객체를 생성하여 사용할 수 있다
객체는 클래스 기반으로 만들어진 인스턴스(Instance)다
즉, 클래스는 설계도고 객체는 그 설계도를 바탕으로 만들어진 실체(현실 세계에 존재하는 무언가)
객체는 메모리에 할당 되며
실제 프로그램에서 데이터를 저장하거나 메소드를 실행 할 수 있다.
가장 흔한 예시인 자동차를 떠올려보자
자동차 클래스를 바탕으로 여러 개의 자동차 즉 객체를 만들 수 있다
CarMain(사용자)에서 Car 클래스로 현대차와 기아차라는 객체를 만들었다
각 객체는 독립적인 상태와 행동을 가진다
현대차는 가속 할 수 있고
기아차는 브레이크를 걸 수 있다
이 코드를 실행 해보면
각 객체가 만들어지고 각각 다른 메모리에 할당되어
독립적인 상태와 행동을 가졌다
객체를 생성하기 위한 설계도. 필드와 메소드로 구성됨
클래스를 기반으로 생성된 실체. 메모리에 할당되어 실제 작업을 수행한다
이 두 개념은 객체 지향 프로그래밍에서 근본적인 요소다
클래스를 정의하고, 그 클래스를 기반으로 객체를 만들어 프로그램을 구조화하는 방식이 객체 지향 프로그래밍의 핵심이다
처음에는 왜 객체를 설명 할 때 붕어빵틀이나 자동차에 비유하는지 이해가 안 갓었다
"그래서 이걸 가지고 그래서 어떻게 쓰는데?"
하지만 이제 설명하는 입장이 되니
왜 클래스와 객체를 설명 할 때
붕어빵이나 자동차로 설명 하는지 이해가 간다.
처음 배우는 사람들이 접근하기 쉽고 이해하기 쉽게 하기 위함이었다...