Основы программирования — второй семестр 08-09; Михалкович С.С.; V часть — различия между версиями
Admin (обсуждение | вклад) (→Абстрактные типы данных) |
Admin (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
# Переменная типа класс и переменная типа запись по-разному хранятся в памяти (ссылочная и размерная организация данных) | # Переменная типа класс и переменная типа запись по-разному хранятся в памяти (ссылочная и размерная организация данных) | ||
# Для создания объекта класса и связывания его с переменной класса вызывается специальная функция-метод, называемая конструктором | # Для создания объекта класса и связывания его с переменной класса вызывается специальная функция-метод, называемая конструктором | ||
+ | # Можно создавать шаблоны классов, параметризованные одним или несколькими типами | ||
===Абстрактные типы данных=== | ===Абстрактные типы данных=== |
Версия 22:03, 31 марта 2009
Что известно о классах к настоящему моменту:
- Класс - тип данных
- Класс, как и запись, содержит поля и методы
- Переменная типа класс и переменная типа запись по-разному хранятся в памяти (ссылочная и размерная организация данных)
- Для создания объекта класса и связывания его с переменной класса вызывается специальная функция-метод, называемая конструктором
- Можно создавать шаблоны классов, параметризованные одним или несколькими типами
Абстрактные типы данных
Класс является реализацией более общей концепции абстрактного типа данных (АТД).
До сих пор мы сталкивались с конкретными типами данных, простыми или составными (массивы, записи, списки). Каждый тип данных характеризуется:
- набором допустимых значений;
- тем, как эти значения хранятся в памяти;
- операциями, которые можно выполнять над данными этого типа.
Абстрактный тип данных - это тип данных, доступ к которым осуществляется только через некоторый набор действий (операций, подпрограмм). Этот набор действий называется интерфейсом абстрактного типа данных. По существу, абстрактный тип данных - это интерфейс, набор операций. То, как эти данные хранятся, АТД не определяет.
Клиенту, использующему тип данных, не важно знать, как он устроен внутри, а важны лишь операции, которые можно выполнять над объектами этого типа, т.е. важен только интерфейс. То есть, клиент оперирует с типом данных как с абстрактным. Реализация должна быть скрыта от клиента (принцип сокрытия реализации).
Для того, чтобы абстрактным типом данных можно было пользоваться, необходимо реализовать все операции, входящие в его интерфейс. Наиболее распространенной реализацией АТД является класс.