Yeom's
Yeom's Coding Note
Yeom's
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • 백준온라인 (94)
    • 운영체제 (14)
    • 프로그래머스 (0)
    • Go Language (40)
    • AWS (1)
    • 자료구조 (21)
    • Effective Java 3E (41)
    • JPA (1)
    • Tech Interview (33)
    • MySQL 8.0 (7)
    • CS 기술면접 (7)
    • Linux (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 출처 : 망나니 개발자
  • https://mangkyu.tistory.com/91
  • https://mangkyu.tistory.com/89
  • 망나니 개발자
  • 교보dts
  • https://mangkyu.tistory.com/88
  • https://mangkyu.tistory.com/90
  • UTM
  • RealMySQL 8.0
  • 백준 설탕 배달
  • java
  • boj 2839
  • 망나니개발자
  • m1 linux
  • https://mangkyu.tistory.com/92
  • Real MySQL 8.0
  • https://mangkyu.tistory.com/93
  • maeil-mail
  • https://mangkyu.tistory.com/94

최근 글

티스토리

hELLO · Designed By 정상우.
Yeom's

Yeom's Coding Note

추상 자료형
자료구조

추상 자료형

2023. 3. 18. 17:22
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
    '자료구조' 카테고리의 다른 글
    • 리스트 - 1
    • 재귀 호출
    • 포인터, 배열, 구조체
    • 객체지향 방법론
    Yeom's
    Yeom's

    티스토리툴바