Редактирование: Язык Ада, 08 лекция (от 21 апреля)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 1: Строка 1:
==Объектно-ориентированное программирование==
==Объектно-ориентированное программирование==
В чем удобство ООП? Ада, начиная с версии 95 года, - это вполне полноценный ОО язык. Однако, в этом языке нет ни классов, ни виртуальный операций. Тезис С.И.Рыбина состоит в том, что объектная ориентация – это вовсе не классы, а это решение некоторой вполне определенной технической задачи, и решение это возможно при помощи механизма, которые могут по-разному выглядеть, но делают по сути одно и то же. ООП – это такой механизм, который обеспечивает 3 базовых компонента:
В чем удобство ООП? Ада, начиная с версии 95 года, - это вполне полноценный ОО язык. Однако, в этом языке нет ни классов, ни виртуальный операций. Тезис С.И.Рыбина состоит в том, что объектная ориентация – это вовсе не классы, а это решение некоторой вполне определенной технической задачи, и решение это возможно при помощи механизма, которые могут по-разному выглядеть, но делают по сути одно и то же. ООП – это такой механизм, который обеспечивает 3 базовых компонента:
-
# Абстракция – объекты, как некие сущности, имеющие структуру и состояние, операции, способные манипулировать объектами, и инкапсуляция – возможность предоставлять интерфейс к объекту.
+
#. Абстракция – объекты, как некие сущности, имеющие структуру и состояние, операции, способные манипулировать объектами, и инкапсуляция – возможность предоставлять интерфейс к объекту.
-
# Наследование – возможность пошагового построения новых абстракций из существующих, с наследованием полезных свойств и добавлением новых.
+
#. Наследование – возможность пошагового построения новых абстракций из существующих, с наследованием полезных свойств и добавлением новых.
-
# Полиморфизм – возможность выносить за скобки несущественные в том или ином смысле различия между абстракциями и программировать в терминах общих свойств этих абстракций.
+
#. Полиморфизм – возможность выносить за скобки несущественные в том или ином смысле различия между абстракциями и программировать в терминах общих свойств этих абстракций.
ООП – программирование, которое позволяет следующие вещи:
ООП – программирование, которое позволяет следующие вещи:
-
# Вариантное программирование. Конструирование новых абстракций из существующих путем указания только разницы между новой и существующих.
+
#. Вариантное программирование. Конструирование новых абстракций из существующих путем указания только разницы между новой и существующих.
-
# Надклассовое программирование. Возможность обрабатывать классы родственных абстракций унифицированным образом, игнорируя разницу между ними, когда можно и нужно
+
#. Надклассовое программирование. Возможность обрабатывать классы родственных абстракций унифицированным образом, игнорируя разницу между ними, когда можно и нужно
Зачем нужно ООП – для экономии усилий программиста из-за возможности конструирования новых абстракций путем указаний всего лишь различий между существующим и новым.
Зачем нужно ООП – для экономии усилий программиста из-за возможности конструирования новых абстракций путем указаний всего лишь различий между существующим и новым.
В 1995 году к Аде были добавлены следующие вещи:
В 1995 году к Аде были добавлены следующие вещи:
-
# Теговый тип – улучшил механизм производных типов. Если запись объявлена как теговая, это означает, что когда объявляется производный тип от данной записи, то нужно сказать, что будут добавляться новые поля, либо сказать, то новые поля добавляться не будут. <br>Если тип описан в видимой части пакета, то они наследуются. Если определяется наследуемый тип, то он наследует все операции родителя, потом переопределяется какая-то операция, и та, которая переопределилась, тоже становится наследуемой.
+
#. Теговый тип – улучшил механизм производных типов. Если запись объявлена как теговая, это означает, что когда объявляется производный тип от данной записи, то нужно сказать, что будут добавляться новые поля, либо сказать, то новые поля добавляться не будут.
-
# Надклассовое тип – целый класс типов, иерархия, включающая теговый тип и все производные от него типы.
+
Если тип описан в видимой части пакета, то они наследуются. Если определяется наследуемый тип, то он наследует все операции родителя, потом переопределяется какая-то операция, и та, которая переопределилась, тоже становится наследуемой.
 +
#. Надклассовое тип – целый класс типов, иерархия, включающая теговый тип и все производные от него типы.
Множество значений этого типа – множество значений корня и все значения всех его потомков, даже тех, которых еще нет, но которые могут появится.
Множество значений этого типа – множество значений корня и все значения всех его потомков, даже тех, которых еще нет, но которые могут появится.
Можно определить надклассовую процедуру. Если процедура имеет формальный параметр надклассового типа, то это позволяется ей принимать в качестве фактического параметра любые объекты, тип которых принадлежит данной иерархии типов.
Можно определить надклассовую процедуру. Если процедура имеет формальный параметр надклассового типа, то это позволяется ей принимать в качестве фактического параметра любые объекты, тип которых принадлежит данной иерархии типов.

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Шаблоны, использованные на этой странице:

Личные инструменты
Разделы