Abstraction
1. Abstraction 이란?
필요한 정보를 오직 사용자를 위해 보여주는 것
2. Type of Abstraction
- Abstraction using classed (access specifier)
- Abstraction using header files
1) 헤더 파일에 특정한 APIs 세트를 정의한다.
2) 다른 프로그램이 APIs를 사용하는 데이터를 조작하려 할 때, 헤더파일을 포함하고, 그것들을 호출해야 한다.
<example>
access specifier 로 인해 private 멤버변수 직접 접근 불가 -> public 함수를 통해 유저가 직접 호출한다.
Encapsulation
1. 캡슐화란?
비슷한 코드를 한 공간에 묶는 것이다. (데이터 멤버, 함수)
<Real Life Encapsulation Examples>
- Automated vending machine = 클래스
- washing machine = water + detergent + dishes(data) -> pre-define되어진 method에 의해 다뤄짐
2. 특징
1) 특정 함수를 작동시키기 위해서는, 클래스 객체가 필요하다. 즉, 함수는 관련된 데이터(변수)에 따라 작동한다.
2) 클래스는 데이터 변수를 다루는 메소드 집합과 / 데이터 변수의 조합이다.
3) 모든 멤버 함수가 제한된 멤버 변수들에 접근할 때, 이를 'Encapsulation'이라 부른다.
3. 캡슐화 장점
- 관련된 데이터와 함수들을 하나로 유지하는 데 도움을 준다.
- 코드가 쉽게 유지되고 디버그될 수 있도록 한다.
- 모듈화된 캡슐은 더 유연하게 만든다. -> 부분적인 컨트롤 가능
- 코드를 더 가독성 좋게
Data Hiding vs Encapsulation
...
'Major S-T-U-D-Y > OOP2' 카테고리의 다른 글
Exception Handling (0) | 2024.05.23 |
---|---|
Template (0) | 2024.05.22 |