객체지향 프로그래밍(OOP)에서 객체와 클래스는 중요하다.
클래스(Class)
•
클래스는 객체를 만들기 위한 설계 도면 또는 틀.
◦
ex) 붕어빵 틀
◦
사실 붕어빵 틀 이라는건 잘못된 예시다. 나중에 정리해서 설명 예정
•
클래스는 객체의 속성(변수) + 행동(메서드).
•
객체를 생성하기 위한 틀이지만 실제로 메모리 상에 올라가지는 않는다.
•
여러 객체들이 같은 클래스를 기반으로 생성될 수 있음.
◦
ex) 사람 클래스는 이름, 나이 등의 속성과 걷는 행동 등의 메서드를 정의할 수 있음.
객체(Object)
•
객체는 클래스의 인스턴스이다. 즉, 클래스를 실제로 메모리 상에 할당한 것.
•
객체는 클래스에 정의된 속성과 메서드를 가지고 있다.
•
클래스의 인스턴스화(instantiation) 과정을 거쳐서 생성됨.
•
객체는 메모리 상에서 데이터를 저장하고 해당 데이터를 처리할 수 있는 기능을 제공함.
◦
ex) John 이라는 이름의 객체는 사람 클래스에 정의된 속성(이름, 나이 등)과 메서드(걷는 행동)를 가지고 있다.
클래스와 객체의 관계
•
클래스는 객체를 생성하기 위한 설계도면으로, 객체를 생성하기 위한 틀을 제공함.
•
객체는 클래스의 인스턴스로, 클래스를 기반으로 생성된 실체.
•
즉, 클래스는 객체를 생성하기 위한 틀을 제공하고, 객체는 해당 클래스의 속성과 행동을 가지고 있는 실체이다.
"자동차"라는 클래스
•
속성으로는 차량 번호, 모델, 색상 등
•
메서드로는 주행, 정차, 외부 소리 출력 등의 행동을 정의
이 클래스를 기반으로 "BMW"라는 객체를 생성하면 실제로 "BMW"라는 차가 만들어지는 것.
이 객체는 "자동차" 클래스에 정의된 속성과 메서드를 가지게 된다.