Введение в программирование - Учебное пособие (Корочкин А. В.)

Глава 16. объектно - ориентированное программирование

Язык Ада поддерживает современную практику разработки про­граммного обеспечениия, основанную на использовании обьектно-ориентированых технологий.

Ада 95 - первый язык обьектно-орентированного программиро­вания, прошедший полную международную сертификацию. Наличие законченных средств обьектно-ориентированного программирования является отличительной чертой языка. Ада 83 поддерживала методику обьектно-ориентированного проектирования, частично ре-ализуя парадигмы обьектно-ориентированного программирования с помощью абстракции данных через приватные типы в пакетах.

Ада 95 уже полностью реализует парадигмы обьектно-ориенти­рованного программирования:

•   инкапсуляцию ( encapsulation)

•   наследование ( inheritance )

•   полиморфизм ( polymorphism );

Обьектно-ориентированное программирование в языке базируется на следующих основных понятиях:

•    Тип - задает множество значений и множество операций;

•   Объект - константа или переменная, ассоциируемая с типом и имеющая структуру и состояние;

•   Класс - множество типов, закрытое лри порождении, то есть если данный тип является членом класса, то все типы, производные от данного типа, тоже являются членом класса ; множество типов одного класса имеют общие свойства ( например, общие примитивные операции );

•   Инкапсуляция - средство, обеспечивающее группирование объектов и их операций, сокрытие деталей их реализации, а также наличие абстрактного интерфейса к ним;

•   Наследование - возможность определения новых абстракций на основе уже существующих с наследованием их свойств и добав­лением новых;

 

197

Глава 16. Обьектно-ориентированное программирование

•   Полиморфизм - возможность умножения различий между абстр­акциями, при которых программа может быть написана в терминах их общих свойств:

Наряду с полной поддержкой указанных понятий, в Аде 95 реа­лизованы дополнительно средства, обеспечивающих более эффек­тивное использование преимуществ обьектно-ориентированных технологий. Это:

•   Смешанное наследование ( Mixin Inheritance ) , использование ко­торого позволяет вводить разновидности родительских абстрак­ций, используемых только для обеспечения свойств производным от них абстракциям.

•   Множественное наследование ( Multiple Inheritance), при исполь­зовании которого возможно наследование компонент и операций от нескольких родительских типов.

•   Диспетчеризация   ( Dispatching) -   средство, обеспечивающее дина­мический выбор реализации соответствующей абстракции. Реализация  этих понятий   и средств в языке основана на введении

дополнительных типов : тэговых,  расширяемых  и абстрактных.