Программирование и ООП
869.00K
Категория: ПрограммированиеПрограммирование

Модуль 5

1. Программирование и ООП

2.

Первым языком программирования, в котором были предложены
принципы объектной ориентированности, была Симула

3.

Структура данных «класс», представляющая собой объектный тип
данных, внешне похожа на типы данных процедурноориентированных языков

4.

Абстракция
это придание объекту характеристик, которые отличают его от всех
других объектов, четко определяя его концептуальные границы

5.

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

6.

Сокрытие данных
неотделимая часть ООП, управляющая областями видимости

7.

Наследование
возможность порождать один класс от другого с сохранением всех
свойств и методов класса-предка и добавляя, при необходимости,
новые свойства и методы

8.

Полиморфизм
явление, при котором функции (методу) с одним и тем же именем
соответствует разный программный код (полиморфный код) в
зависимости от того, объект какого класса используется при вызове
данного метода

9.

Сложности определения
ООП имеет уже более чем сорокалетнюю историю, но, несмотря на
это, до сих пор не существует чёткого общепринятого определения
данной технологии

10.

Концепции
Необходимость совместного использования объектов разных
классов, способных обрабатывать однотипные сообщения, требует
поддержки полиморфизма - возможности записывать разные
объекты в переменные одного и того же типа

11.

Концепции
В большинстве существующих объектно-ориентированных языков
программирования используется концепция «отправка сообщения
как вызов метода» - объекты имеют доступные извне методы,
вызовами которых и обеспечивается взаимодействие объектов

12.

Поля данных
Параметры объекта, задающие его состояние (свойства объекта
предметной области)

13.

Методы
Процедуры и функции, связанные с классом

14.

Интерфейс
это класс без полей и без реализации, включающий только
заголовки методов

15.

Инкапсуляция обеспечивается следующими средствами:
• Контроль доступа ;
• Методы доступа ;
• Свойства объекта.

16.

Подходы к проектированию программ в целом
ООП ориентировано на разработку крупных программных
комплексов, разрабатываемых командой программистов

17.

Подходы к проектированию программ в целом
По мере детализации описания и определения ответственности
выявляются данные, которые необходимо хранить, наличие
близких по поведению агентов, которые становятся кандидатами
на реализацию в виде классов с общими предками

18.

Компонентное программирование
это своеобразная «надстройка» над ООП, набор правил и
ограничений, направленных на построение крупных
развивающихся программных систем с большим временем жизни

19.

Производительность объектных программ:
• Динамическое связывание методов;
• Значительная глубина абстракции;
• Инкапсуляция снижает скорость доступа к данным;
• Динамическое создание и уничтожение объектов.

20.

Критика рекламы ООП
Критики оспаривают тезис о том, что разработка объектноориентированных программ требует меньше ресурсов или
приводит к созданию более качественного ПО

21.

Производительность объектно-ориентированных
программ
Целый ряд «врождённых особенностей» ООП-технологии делает
построенные на её основе программы технически менее
эффективными, по сравнению с аналогичными необъектными
программами

22.

Критика отдельных технологических решений в ООПязыках и библиотеках
Одним из излюбленных объектов критики является язык C++,
входящий в число наиболее распространённых промышленных
ООП-языков

23.

Набор синтаксических средств:
• Объявление классов с полями и методами;
• Механизм расширения класса;
• Средства защиты внутренней структуры классов от
несанкционированного использования извне;
• Полиморфные переменные и параметры функций;
• Полиморфное поведение экземпляров классов за счёт использования
виртуальных методов.

24.

Дополнительные средства:
• Конструкторы, деструкторы, финализаторы;
• Свойства (аксессоры);
• Индексаторы;
• Интерфейсы;
• Переопределение операторов для классов.
English     Русский Правила