1. 추상자료형의 개요
- 추상화
- 속성들의 일부분만을 가지고 주어진 작업이나 객체들을 필요한 정도로 묘사할 수 있는 방법을 지원하는 것
- 유사성을 표현하고 차이점을 삭제함으로써 관련된 사항들을 하나로 묶어 표현하는 방법
- 프로시저 추상화 : 어떻게 수행되는가는 기술하지 않고 무엇이 수행되는가를 묘사
- 자료 추상화 : 자료형의 표현과 그에 관련된 연산들을 함께 묶어 캡슐화
- 추상자료형(ADT, Abstract Data Type)
- 자료를 그 자료의 처리 연산과 함께 선언할 수 있는 자료형
- 정보 은닉 개념을 도입하여 프로그램을 쉽게 읽을 수 있고, 유지보수를 용이하게 할 수 있는 자료형
- 추상자료형을 통해 향상되는 기본 목표
1) 수정 용이성 : 프로그램 전체에서의 사용에 영향을 끼치지 않고 구현에 변화를 줄 수 있음
2) 재사용성 : 상이한 프로그램에서도 그 코드를 재사용 할 수 있음
3) 보안성 : 구현의 세부 사항을 프로그램의 다른 부분이 마음대로 바꾸지 못하도록 보호할 수 있음
- 캡슐화(encapsulation)
- 부적당한 사용으로부터 자료형으 ㄹ보호하기 위한 기법
- 사용자는 윈도우를 통한 사용만 허락됨
- 공용부 : 윈도우를 통해서 외부에 알려주는 부분
- 전용부 : 윈도우 캡슐화를 통해 보호하는 부분
- 추상자료형의 (가상적인) 형태
- structure : 추상 자료형 개념에 대한 새로운 이름
- structure ~ end
- 내부정의 : 자료형의 이름, 선언문, 표현, 프로시저문
2. C++의 추상 자료형
- 인스턴스
- 항상 객체선언 결과로 생성됨
- 한 클래스의 모든 인스턴스는 멤버 함수 집합 하나만 공유하지만 각 인스턴스는 각자 자신의 데이터 멤버 집합을 가짐
- 수명은 인스턴스화한 선언문의 영역에서 벗어날 때 끝남
- 스택 변수이지만 클래스는 힙 변수적 데이터 멤버를 가질 수 있음
- 소멸자
- 인스턴스의 수명이 끝났을 때 묵시적으로 호출
- 클래스 이름 앞에 물결표(~)를 붙여서 사용
- new 연산자로 생성시킨 힙 변수 데이터 멤버가 포함된 경우 소멸자는 힙 변수 데이터 멤버의 기억장소를 회수하기 위하여 delete 연산자를 포함시킬 수 있음
- 틀(template) 매개변수
- 클래스 틀을 만들 때 원소형을 매개변수로 사용할 수 있음
3. Java의 추상자료형
- 모든 사용자 정의 자료형이 클래스
- 모든 객체는 힙에 할당되고 참조형 변수를 통하여 접근됨
- 패키지
- 클래스 상위 수준에 두 번째 캡슐화 구조인 패키지를 가짐
- 패키지는 한 개 이상의 클래스 정의를 가지며 , 패키지 내에서 각 클래스는 다른 클래스의 부분 프렌드
- 접근 수정자가 없는 개체들은 패키지 영역을 가짐
- 소멸자 부재
- 묵시적인 쓰레기 수집(GC) 사용
- 힙에 사용 하지 않는 객체 장소는 쓰레기 수집을 통해 재사용
- 따라서 소멸자 x
'프로그래밍 > TIL(Today I Learned)' 카테고리의 다른 글
9강 연산자의 다중정의(2) (0) | 2018.10.19 |
---|---|
8강 연산자 다중정의(1) (0) | 2018.10.19 |
14강 매개변수의 전달기법(2) (0) | 2018.10.16 |
13강 비지역 변수 참조 방법과 매개변수 전달 기법(1) (0) | 2018.10.16 |
12강 동적 기억장소 할당 (0) | 2018.10.16 |