프로그래밍/TIL(Today I Learned)

15강 추상자료형

가라멜 2018. 10. 16. 19:46
반응형

1. 추상자료형의 개요

- 추상화 

- 속성들의 일부분만을 가지고 주어진 작업이나 객체들을 필요한 정도로 묘사할 수 있는 방법을 지원하는 것

- 유사성을 표현하고 차이점을 삭제함으로써 관련된 사항들을 하나로 묶어 표현하는 방법

- 프로시저 추상화 : 어떻게 수행되는가는 기술하지 않고 무엇이 수행되는가를 묘사

- 자료 추상화 : 자료형의 표현과 그에 관련된 연산들을 함께 묶어 캡슐화

- 추상자료형(ADT, Abstract Data Type)

- 자료를 그 자료의 처리 연산과 함께 선언할 수 있는 자료형

- 정보 은닉 개념을 도입하여 프로그램을 쉽게 읽을 수 있고, 유지보수를 용이하게 할 수 있는 자료형

- 추상자료형을 통해 향상되는 기본 목표

1) 수정 용이성 : 프로그램 전체에서의 사용에 영향을 끼치지 않고 구현에 변화를 줄 수 있음

2) 재사용성 : 상이한 프로그램에서도 그 코드를 재사용 할 수 있음

3) 보안성 : 구현의 세부 사항을 프로그램의 다른 부분이 마음대로 바꾸지 못하도록 보호할 수 있음

- 캡슐화(encapsulation)

- 부적당한 사용으로부터 자료형으 ㄹ보호하기 위한 기법

- 사용자는 윈도우를 통한 사용만 허락됨

- 공용부 : 윈도우를 통해서 외부에 알려주는 부분

- 전용부 : 윈도우 캡슐화를 통해 보호하는 부분

- 추상자료형의 (가상적인) 형태

- structure : 추상 자료형 개념에 대한 새로운 이름

- structure ~ end

- 내부정의 : 자료형의 이름, 선언문, 표현, 프로시저문


2. C++의 추상 자료형

- 인스턴스

- 항상 객체선언 결과로 생성됨

- 한 클래스의 모든 인스턴스는 멤버 함수 집합 하나만 공유하지만 각 인스턴스는 각자 자신의 데이터 멤버 집합을 가짐

- 수명은 인스턴스화한 선언문의 영역에서 벗어날 때 끝남

- 스택 변수이지만 클래스는 힙 변수적 데이터 멤버를 가질 수 있음

- 소멸자

- 인스턴스의 수명이 끝났을 때 묵시적으로 호출

- 클래스 이름 앞에 물결표(~)를 붙여서 사용

- new 연산자로 생성시킨 힙 변수 데이터 멤버가 포함된 경우 소멸자는 힙 변수 데이터 멤버의 기억장소를 회수하기 위하여 delete 연산자를 포함시킬 수 있음

- 틀(template) 매개변수

- 클래스 틀을 만들 때 원소형을 매개변수로 사용할 수 있음


3. Java의 추상자료형

- 모든 사용자 정의 자료형이 클래스

- 모든 객체는 힙에 할당되고 참조형 변수를 통하여 접근됨

- 패키지

- 클래스 상위 수준에 두 번째 캡슐화 구조인 패키지를 가짐

- 패키지는 한 개 이상의 클래스 정의를 가지며 , 패키지 내에서 각 클래스는 다른 클래스의 부분 프렌드

- 접근 수정자가 없는 개체들은 패키지 영역을 가짐

- 소멸자 부재

- 묵시적인 쓰레기 수집(GC) 사용

- 힙에 사용 하지 않는 객체 장소는 쓰레기 수집을 통해 재사용

- 따라서 소멸자 x



반응형