Похожие презентации:
Модуль 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.
Дополнительные средства:• Конструкторы, деструкторы, финализаторы;
• Свойства (аксессоры);
• Индексаторы;
• Интерфейсы;
• Переопределение операторов для классов.
Программирование