반응형
Intro
이번 포스팅에서는 객체지향의 3가지 특성에 대해 알아보도록 하겠습니다. 객체 지향의 이해 방법의 하나로 "객체지향이란 상속, 캡슐화, 다형성을 사용하는 것"이라는 말이 있을 정도로 객체지향을 이해하는데 핵심 내용입니다.
객체지향의 3가지 특성
- 상속(inheritance)
- 다른 클래스의 멤버를 인계하여 새로운 클래스를 정의하는 것입니다.
- 같은 특징 있는 클래스를 그대로 물려받아 재사용 가능하기 때문에 효율성을 늘릴 수 있습니다.
- 하위 클래스는 상위 클래스로부터 상속받은 멤버 외에 새로운 멤버 구성하여 사용할 수 있습니다.
상속의 가장 큰 장점은 재사용에 있다고 생각이 됩니다. 상위 클래스의 멤버를 하위 클래스에서 재사용함으로 소프트웨어 개발에 편의성이 증대된다고 생각이 됩니다.
- 캡슐화(Encapsulation)
- 연관 있는 멤버를 클래스로 묶는 작업을 의미합니다.
- 클래스의 멤버를 부분적으로 은폐하는 것입니다.
- 클래스가 지닌 멤버 가운데 클래스를 사용하는 측에서 필요한 것만을 공개하고 클래스 내에서만 사용되는 멤버를 감추는 것입니다.
캡슐화는 외부에 데이터를 은닉하는데 많이 사용이 되는데 멤버의 정의를 접근 지정어로 private, protected, public로 선언을 해줍니다.
- 다형성
- 같은 모양의 함수가 동일한 메시지에 대해 복수의 다른 응답을 하는 것입니다.
- 하나의 클래스의 내부에 동일한 이름의 함수를 만들어 함수의 타입을 다르게 하거나, 파라미터의 개수를 다르게 하눈 오버 로딩(overloading)의 특성이 있습니다.
- 상속받은 함수를 재정의 하는 오버 라이딩(overriddng)의 특성이 있습니다.
멤버의 오버 로딩과 오버 라이딩을 통해 동일한 함수의 다른 메시지를 출력하여 객체지향의 특징인 다형성을 실현할 수 있습니다.
마무리
상속, 캡슐화, 다형성의 목적은 현실 세계를 그대로 모델링하여 프로그래밍의 효율화에 목적이 있습니다. 따라서, 프로그래밍을 할 때 객체지향의 특성을 꼭 사용해야 필수는 아닙니다. 그냥 필요한 상황에 쓰는 테크닉입니다. 필수는 아니지만 아마도 개발을 하시게 되면 분명히 쓰시게 될 거라고 생각합니다. 다음 시간에는 위에 설명했던 객체지향의 특성이 어떻게 사용되는지 자세히 알아보도록 하겠습니다.
반응형
'[C/C++/MFC]' 카테고리의 다른 글
시리얼 통신(Serial Communication) C++ (0) | 2023.07.19 |
---|---|
[C++ Visual studio 2019 & Google Test 연동 방법(Unit test)] (2) | 2021.07.17 |
[C++ 캡슐화] (0) | 2021.07.04 |
[C++ 다형성, 오버로드 vs 오버라이드] (0) | 2021.05.23 |
[C++ 절차지향 프로그래밍 vs 객체지향 프로그래밍] (0) | 2021.05.08 |