어느 기계를 다룰 때를 예로 들어보자.
한 기계와의 모든 상호작용은 "시작", "정지" 버튼과 같이 제어판에 있는 버튼을 통하여 이루어진다.
그 기계는 우리가 직접적으로 내부에 접근하는 것을 막고자 하여 외부가 덮혀져 있다.
그래서, 기계의 내부는 사용자로부터 감춰져 있다.
이것이 캡슐화(encapsulation)의 원칙이다.
기계의 사용 설명서는 우리가 특정 버튼을 누를 때 기계가 어떤게 작동되어야 하는지를 알려준다.
그것은 기계의 내부가 어떻게 구현되어(구성되어) 있는지 알려주지 않는다.
그것은 어떤 버튼을 눌렀을 때 기계의 전기적, 기계적 연속적인 동작을 알려주지는 않는다.
그러므로, 그 사용 설명서는 무엇을 기계가 하는 지와 어떻게 그것을 하는지를 명확히 구분한다.
이 구분이 추상화(abstraction)의 원칙이다.
정의: Data Encapsulation(자료 캡슐화) 또는 Information Hiding(정보 감춤)은 한 자료 객체의 세부 구현을 외부 세계로부터 감추는 것이다.
정의: Data Abstraction(자료 추상화)는 자료 객체의 구현과 그것의 명세를 구분 짓는 것이다.
즉 어떻게 이루어졌는지는 알려주지 않고, 어떻게 사용하는지만 알려준다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
» | 객체지향 프로그래밍에서 추상화와 인캡슐레이션 - 추상화와 캡슐화(감추기?) | Eugene | 2023.10.30 | 37 |
1 |
객체지향 - 인터페이스(Interface)와 클래스(Class)의 구현(Implementation)
![]() | Eugene | 2022.05.24 | 1768 |