캡슐화(Encapsulation)
- 캡슐화는 데이터를 외부에서 접근하는 것을 제한함으로서 데이터를 보호하는 객체 지향 특성입니다. C++에서 캡슐의 역할은 클래스이고, class 키워드를 이용하여 클래스를 만들 수 있습니다. 예를 들어, 자판기가 한 대 있다고 생각해봅시다. 자판기 안에는 데이터에 해당하는 음료수들이 많이 있습니다. 이 음료수들은 사람들이 돈을 지불해야 자판기 외부로 제공합니다. 하지만 돈을 지불하지 않고 데이터(음료수)에 접근하려고 하는 시도는 막아야합니다. 이와 같은 방법이 캡슐화입니다. 클래스 외부에서 클래스 내부에 데이터에 직접 접근을 제한하는 방법입니다. 이를 통해서 데이터를 보호할 수 있습니다.
상속성
- 객체 지향 언어에서 상속이란, 자식이 부모로부터 유산을 물려받는 개념보단, 자식이 부모의 유전자를 물려받는 것과 비슷합니다. C++에서 상속은 객체를 정의하는 클래스 사이에 상속 관계를 두어, 자식 클래스의 객체가 생성될 때 자식 클래스에 선언된 멤버뿐 아니라 부모 클래스에 선언된 멤버들도 함께 가지고 탄생하는 것이죠. 쉽게 말해서 부모 클래스가 가진 멤버 변수와 멤버 함수를 자식 클래스에서 그대로 가져가서 사용하는 것입니다. 이를 이용하면 클래스를 새로 만들 때 조금 더 경제적으로 만들 수 있습니다.
다형성
- 다형성은 하나의 기능이 경우에 따라서 다른 방식으로 작동하는 것을 말합니다. 다형성의 예로는 연산자 오버로딩과 함수 오버로딩이 있습니다. 연산자 오버로딩은 한 연산자가 경우에 따라서 다른 방식으로 작동하는 것입니다. 예를 들어, + 연산자의 경우에는 정수 연산에서는 덧셈을, 문자열 연산에서는 문자열 붙이는 연산을 진행합니다. (10 + 10 = 20, "안녕" + "하세요" = "안녕하세요"). 이를 통해 효율적으로 프로그래밍을 진행할 수 있습니다.
추상화
- 추상화는 어떤 물체에서 중요한 부분만 추출하여 그 일부를 전체 물체의 대표값으로 사용하는 것을 말합니다. 예를 들어, 사람을 데이터로 추상화해보면 몸무게, 키, 머리카락 색 등을 대표값으로 추출할 수 있습니다. 이것이 객체 지향 프로그래밍에서 객체를 만드는 방식입니다. 클래스를 만들 때 세상에 있는 객체들의 중요 데이터를 추출한 후 추상화하여 만듭니다.
'프로그래밍 > C++' 카테고리의 다른 글
[C++] C++ 언어의 특징 (0) | 2024.08.07 |
---|