-
[C++] 2. 객체지향 개발(OPP)의 특징2020년도 1학기/객체지향언어 2020. 3. 27. 11:51728x90반응형
객체 지향 개발(OPP)의 특징
1. 캡슐화(encapsulation)
데이터(변수)와 동작(function)을 하나의 클래스로 묶는 것이다. 실제로 구현되는 부분을 캡슐로 감싸서 외부에 드러내지 않고 이용 방법만 알려주는 것이다. 직접 접근은 안되고 함수를 통해서만 접근 가능하다. 캡슐화를 통해 만일의 상황(타인이 외부에서 조작, 불필요한 접근 등)을 막아 데이터를 보호할 수가 있다.(정보 은닉, Hiding) 근데 캡슐화를 해서 데이터를 묶고 숨기는 걸까? 우선 클래스 내부에 여러 함수를 포함시킬 수 있어서 프로그램을 보는 단위가 커지고 관리가 쉽다. 그리고 내부 데이터를 숨겨서 좀 더 자유롭게 변경이 가능하고 유지 보수가 쉽다.
2. 상속성(inheritance)
상위 개념의 특징을 하위 개념이 물려받는 것이다. 이미 존재하고 있는 클래스를 가져다가 수정하여 새로운 클래스를 손쉽게 만들 수 있다. 부모 클래스를 이용해서 자식 클래스를 빨리 개발할 수 있고 반복된 코드의 중복을 줄여준다. 예를 들어서 휴대전화라는 클래스가 있다고 할 때, 휴대전화의 기능은 통화를 하고 문자를 주고 받는 것이다. 여기서 다른 기능(반으로 접힌다, 카메라가 된다, 앱설치가 가능하다 등등 )을 추가하면, 추가적인 기능을 가진 휴대전화가 되는 것이다.
3. 다형성(polymorphism)
부모 클래스에서 물려받은 가상 함수를 자식 클래스에서 오버라이딩, 오버로딩 되어 사용되는 것이다. 쉽게 말해 동작은 같지만 다른 결과물이 나올 때 다형성이라고 말한다. 만약에 사람 A가 돌멩이를 들고 있고, 사람 B가 폭탄을 들고 있다고 가정해보자. 사람 A, B에게 "던져!" 라고 명령을 내리면 A, B는 모두 던질 것이다. 만약 다형성이 없다면 A에게는 돌멩이를 던지라고, B에게는 폭탄을 던지라고 명령했을 것이다.
728x90반응형'2020년도 1학기 > 객체지향언어' 카테고리의 다른 글
[C++] 5. 데이터 처리(연산자, 선택 제어문, 반복 제어문) (0) 2020.05.09 [C++] 4. 기본 자료형, 문자열, 구조체 (0) 2020.05.09 [C++] 3. 자료형과 변수 (0) 2020.05.09 [C++] 2.2 C++ 프로그램의 예, C++ 입출력 기본 (0) 2020.05.02 [C++] 1. C++ 프로그래밍 언어 (0) 2020.03.27