728x90
반응형
추상 자료형 개념
- 추상 데이터 타입(Abstract Data Type)
- 프로그램의 대상이 되는 사물이나 현상을 추상적으로 정의
- 보다 일반화된 내용으로 정의
- 사용자와 구현자를 분리
사용자 관점과 구현자 관점
사용자 관점의 추상 자료형 | 구현자 관점의 추상 자료형 |
작업명과 용도 | 1) 작업의 구체적 구현방법 2) 구현을 위한 데이터 집합 |
C에서의 추상자료형 구현
인터페이스 파일과 구현파일의 분리
- 인터페이스 파일 : 헤더파일(.h)
- 구현 파일 : 소스파일(.c)
헤더 파일
- 함수 프로토타입만 보여줌
- 블랙 박스(정보의 은닉, 구현을 볼 수 없음)
- 계약서 역할(작업의 정의를 자세하고 정확하게 기술)
절차적 언어
- 독자적인 추상 자료형을 인정하지 않음
- 따라서 추상 자료형 자체를 선언할 수 없음
- 결국, 필요한 작업명과 작업이 가해지는 데이터 타입만을 명시하는 차원에서 그침
C++에서의 추상 자료형 구현
개념적 일치
- 사용과 구현의 분리
- 작업을 기준으로 정의된 데이터 타입
- 사용자에게 구현 방법을 숨김
선언의 일치
- 추상 자료형 선언 = 클래스 선언
- 추상 자료형의 작업 = 클래스의 메시지
인캡슐레이션(Incapsulation)
첫 번째 의미
- 캡슐 벽 때문에 밖에서 안을 들여다 볼 수 없음(정보의 은닉)
- 객체 밖의 사용자가 객체 안의 구현방법이나 자료구조를 알 수 없음
- 캡슐 외부와 내부 사이에 열린 유일한 창구는 메시지
두 번째 의미
- 하나 이상의 요소를 캡슐이 둘러싸고 있음
- 작업 구현방법과 자료구조를 묶어서 캡슐화
- 작업을 떠나서 자료구조를 생각할 수는 없기 때문에 묶어서 정의
객체지향 관련 용어 정리
추상 자료형 | ADT | = | Operation | + | Collection of Data |
일반 용어 | Program | = | Algorithm | + | Data Structure |
객체지향 방법론 | Class | = | Message(Interface View) or Method(Implementation View) |
+ | State Variable or Instance Variable |
C++ | Class | = | Member Function | + | Member Data |
728x90
반응형
'자료구조' 카테고리의 다른 글
리스트 - 2 (0) | 2023.03.19 |
---|---|
리스트 - 1 (0) | 2023.03.19 |
재귀 호출 (0) | 2023.03.19 |
포인터, 배열, 구조체 (0) | 2023.03.18 |
객체지향 방법론 (0) | 2023.03.17 |