C++
[C/C++ 강좌] 85강. 객체 지향 프로그래밍의 4대 원리 (1)
코다람쥐
2022. 1. 20. 19:32
https://www.youtube.com/watch?v=Cmq4kTw8Q-U&list=PLlJhQXcLQBJqywc5dweQ75GBRubzPxhAk&index=90
1. 캡슐화(Encapsulation)
캡슐화란?
- 데이터(멤버 변수)와 기능(멤버 메서드)를 하나의 단위로 묶어 놓음.
정보은닉의 기능
- 클래스의 멤버 변수들은 private등을 통해 숨겨놓고 메서드(public으로 선언)들을 통해서 변수들에 접근을 한다.
캡슐화를 쓰는 이유?
- 정보은닉을 하면 사용자는 클래스 내부 구조를 알 필요없이 메서드의 사용법만 알면 된다.
예를들어, 우리는 자동차의 구조를 알 필요없이 핸들, 페달, 기어의 사용법만 알면 자동차를 운전할 수 있다.
- 데이터를 실수로 잘못 바꾸는 것을 방지한다.
캡슐화 하는 방법
- 클래스 안에 멤버 변수, 멤버 메서드 선언
- private, public, protected와 같은 접근 제어 이용
캡슐화는 언제든지 사용해도 좋다!
2. 상속성(Inheritance)
상속성이란?
- 부모 클래스의 멤버를 재사용해서 자식 클래스에서도 사용할 수 있는 것.
상속성을 사용할 때?
- 부모 클래스에서 할 수 있는 일을 자식 클래스에서 할 수 있을 때.
클래스를 설계할 때 자식클래스에서도 할 수 있는지 따져보면 상속으로 해도 될지를 알 수 있다.(리스코프 치환원칙에 나옴)
- 자식 클래스는 부모 클래스의 일종이다 ( A is a B )
상속성을 사용하는 이유
- 코드의 재사용