728x90
반응형
SMALL
SMALL
OOP 특징 및 핵심 개념에 대한 정리
OOP(Object Oriented Programming)
객체지향 프로그래밍
필요한 데이터를 추상화하여 속성과 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
캡슐화(Encapsulation)
객체의 속성과 행위를 하나로 묶고 구현 코드를 외부에 감춰 은닉하는 것
- 데이터 번들링(Data bundling) - 변수와 함수를 하나의 단위로 묶는 것
- 멤버 변수 + 멤버 함수 + 접근지정자를 = 클래스로 캡슐화 지원
- 정보 은닉(Information hiding) - 클래스 내부 구현을 외부로 드러나지 않도록 감춤
728x90
추상화(Abstraction)
중요하고 필요한 정보만 표현하기 위해 객체의 공통적 속성과 행위를 하나로 묶는 것
상속(Inheritance)
상위 클래스에 정의된 기능을 가져와 재사용하거나 새로운 기능을 추가해 코드의 중복을 줄이고 재사용성을 늘릴 수 있는 방법
- 기존에 잘 만들어진 클래스 재활용 가능
- 공통 코드를 상위 클래스에 정의하여 반복 제거, 유지보수 편리
- 공동의 조상을 가지는 클래스 계층을 구성함으로써 다형성 부여
다형성(Polymorphism)
객체가 상속을 통해 기능을 확장하고 변경하여 여러 형태의 객체로 재구성되는 것
- 오버로딩 : 같은 이름의 메서드나 연산자를 매개변수만 변경하여 중복정의 하는 것
- 오버라이딩 : 같은 이름과 매개변수를 가지는 메서드를 하위 클래스에서 재정의 하는 것
- 미리 만들어둔 코드를 수정하지 않고, 클래스를 상속하여 동작 변경 가능
728x90
반응형
LIST
'Language > C++' 카테고리의 다른 글
[C++] 스마트 포인터 (0) | 2023.09.25 |
---|---|
[C++] 클래스(Class) (0) | 2023.09.17 |
[C++] 띄어쓰기 포함 문자열 입력 (0) | 2023.09.12 |
[C++] STL String 사용법 및 예제 (0) | 2023.08.15 |
[C++] 연산자 오버로딩(Operator Overloading) (0) | 2023.07.17 |