객체지향 프로그래밍
객체지향 프로그래밍(Object-Oriented Programming)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다. 이 객체들을 마치 레고 블럭처럼 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다. 다시 말해서 객체지향 프로그래밍은 객체를 만드는 것이다.
기본 구성 요소
- 클래스(Class)
같은 종류의 집단에 속하는 속성과 행위를 정의한 것. 다른 클래스와 독립적으로 디자인해야 한다. 몬스터(Monster) 의 특성과 행위들을 정의한 객체가 클래스가 될 것이다. - 객체(Object)
클래스의 인스턴스(Instance). 상위 클래스의 속성을 가지고 있으면서 개별적인 특성과 행위(메소드 : Method) 또한 가지고 있다. 위의 예제에서는 드래곤, 좀비, 해골 등이 각각의 객체가 된다. - 메서드(Method)
클래스로부터 생성된 객체를 사용하는 방법. 객체의 속성을 조작하는 데 사용된다. 위의 예제에서 각각의 몬스터들이 레벨업을 하는 행위가 메서드(method)라고 볼 수 있다.
추상화
추상화는 객체들이 가진 공통의 특성들을 파악하고 불필요한 특성들을 제거하는 과정을 말한다.
캡슐화
캡슐화는 객체의 데이터를 외부에서 직접 접근하지 못하게 막고, 함수를 통해서만 조작이 가능하게 하는 작업이다.
인터페이스
사용자의 의도를 특정한 정보로 변환하는 것을 담당한다.
다형성
다형성이란 상속과 연관있는 개념으로 한 객체가 상속을 통해 기능을 확장하거나 변경하여 다른 여러형태(객체)로 재구성 되는 것을 말한다.
쉽게 말하면 한 부모의 밑에서 태어난 자식들이 조금씩 다르다는 것이다.
오버로드(Overload) 또는 오버라이드(Override)가 다형성의 대표적인 예라 할 수있고, 이것을 구현하는 걸 오버로딩(Overloading)과 오버라이딩(Overriding)이라고 한다.
무결성
데이터의 정확성과 일관성을 유지하고 보증하는 것
참고사이트
'C++ > Basic' 카테고리의 다른 글
[C++] 열거체 (0) | 2021.06.21 |
---|---|
[C++] 클래스의 초기화, const 멤버 함수 (0) | 2021.06.20 |
[C++] using과 namespace (0) | 2021.06.17 |
[C++] new연산자 (0) | 2021.06.17 |
[C++] static과 외부변수 선언 (0) | 2021.06.17 |