자료형
+ 추상화
= 추상자료형
구현방법을 명시하지 않고 기능이 무엇인지만 나열한 것
- 자료형은 데이터 자체뿐 아니라, 데이터를 식별하는 구분, 연산, 저장 이라는 기능과 이에대한 구현방법까지 모두 포함하는 것이다.
- 추상자료형 (ADT) 는 이러한 자료형을 추상화 한 것과 같다. 즉, 자료형에 있는 데이터 구분, 연산, 저장 같은 핵심 개념/기능 은 정의하되, 구현내용은 명시하지 않은 것을 뜻한다.
추상 자료형의 특징
- What(구현대상) 은 정의하지만, How (구현방법)은 정의하지 않는다
- 구현으로 부터 분리하고, 간단한 인터페이스(자료의 특징 또는 연산) 만 제공하여,
세부내용을 외부로부터 숨긴다
즉, 캡슐화 (정보은닉)이 가능하다.
interface (in Java)또한 추상 자료형의 한 종류이다
- Java 에서 Map, List, Set 같은 인터페이스가 추상 자료형이며,
이에대한 구현체가 HashMap, ArrayList 같은 것들 이다.
추상 자료형의 장점
- 구현에 대한 세부사항을 숨겨 정보은닉이 가능하다
- 핵심기능을 미리 선언한 후, 제공함으로서 코드의 재사용성과 가독성을 증가시킨다
글을 쓰고 읽기 전 글의 개요를 먼저 작성하고 보는것과 같은 효과
- 구현과 사용의 유현함을 제공한다 (다형성 및 OCP 원칙)