-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDD8586.cpp
38 lines (29 loc) · 1.57 KB
/
DD8586.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* OOP(객체 지향 프로그래밍)의 4대 원리(원칙, 특성, 특징)
1. 캡슐화 54강 Encapsulation (클래스 내 추상화)
무엇 - 데이터(멤버변수)와 기능(멤버메서드)을 하나의 단위로 묶어 놓음
- 데이터를 보이지 않게 가리고, 데이트에 접근하기 위한 메서드만을 노출 (데이터 은닉)
언제 - 언제든
왜 - 클래스 사용자 : 클래스 내부 구조 이해x, 사용법만 알면 사용 가능 (자동차 운전자는 자동차 내부구조 모르고 운전법만 알면 사용가능)
데이터를 실수로 잘못 바꾸는 것을 방지
어떻게 - 클래스 안에 멤버 변수, 멤버 메서드 선언 / 접근 제어
2. 상속성 75강 Inheritance
무엇 - 부모 클래스의 멤버를 재사용해서 자식 클래스에서도 사용할 수 있음
언제 - 부모 클래스에서 할 수 있는 일을 자식 클래스에서 할 수 있다 (Liskov 치환 원칙)
- 자식 클래스는 부모 클래스의 일종이다 (A is a B)
왜 - 코드 재사용
어떻게 - 상속
3. 다형성 78강 Polymorphism
무엇 - 동적 다형성 : 한 클래스가 그로부터 파생된 다양한 형태를 지닐 수 있음
- 정적 다형성 : 함수 오버로딩, 템플릿
언제 - 자식 클래스의 메서드 구현이 부모 클래스와 다를 때
왜 - 자식 클래스에서 하고 싶은 일들이 부모 클래스에서와 다를 수 있음
어떻게 - 오버라이딩, 가상 함수!! (RTTI->동적바인딩, 다형적 클래스)
4. 추상화 80강 Abstraction (클래스 간 추상화)
무엇 - 부모 클래스 : 클래스가 구현해야 할 기능만을 명시 (순수 가상 함수)
- 자식 클래스 : 실제 구현
언제 - [자식 클래스]는 [부모 클래스]할 수 있어야 한다 (A is able to B)
왜 - "자동차" : 운전대, 페달, 기어 변속기 (추상 클래스)
- 각 부품의 작동 원리는 자동차 종류마다 다름
어떻게 - 추상 클래스 (순수 가상 함수)
추상 클래스 : 순수 가상 함수가 하나라도 들어있는 클래스. 자식들에게 틀을 제공. 객체화x
*/