Similar presentations:
Основные понятия объектно-ориентированного программирования
1. ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
ОСНОВНЫЕ ПОНЯТИЯОБЪЕКТНООРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
Лекция 2 Основы ООП.
1
2. Интуитивные определения основных понятий
Объектом называется математическоепредставление сущности реального мира
(или предметной области), которое
используется для моделирования.
Классом называется весьма общая
сущность, которая может быть определена
как совокупность объектов.
Класс - группировка объектов, которые имеют те же самые
свойства, общее поведение и одинаковые отношения.
Лекция 2 Основы ООП.
2
3. К Л А С С
КЛАСС• Класс – это модуль, архитектурная
единица построения программной
системы.
• Класс – это сложный тип данных, в
котором объединены элементы данных
(поля) и методы, обрабатывающие эти
данные и выполняющие операции по
взаимодействию с окружающей средой.
Лекция 2 Основы ООП.
3
4. СОСТАВ КЛАССА
• Поле класса – это элементкласса, описывающий данные.
• Метод класса – это процедура
или функция, включенная в
описание класса.
Лекция 2 Основы ООП.
4
5. ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ КЛАССОВ
Лекция 2 Основы ООП.5
6. ОБЪЕКТЫ
Объект – это представитель класса,построенный по хранящемуся в классе
описанию.
Конкретные значения полей класса характеризуют
состояние объекта, а методы класса
представляют собой интерфейс к данным
объекта. Таким образом, объект в программе
представляется как совокупность данных,
характеризующих его состояние и функций их
обработки, моделирующих его поведение.
Лекция 2 Основы ООП.
6
7. Объект традиционного языка
ОбъектДанные
В традиционных языках программирования
объявления данных и процедуры их
обработки отделены друг от друга.
Доступ к данным может быть получен «со
стороны», посредством произвольной
процедуры, что является
непоследовательным и небезопасным.
Лекция 2 Основы ООП.
7
8. Схема инкапсуляции объекта в ООП
ОБЪЕКТДАННЫЕ
КОД
В ООП определение свойств объекта
и методы их обработки хранятся
совместно. Доступ к объекту, минуя
его методы, невозможен!
Лекция 2 Основы ООП.
8
9. СООТНОШЕНИЕ ПОНЯТИЙ КЛАССА И ОБЪЕКТА
• понятие класса является более общим,чем понятие объекта;
• объект является экземпляром
(instantiation) класса;
• класс может рассматриваться как
совокупность объектов (подобно тому,
как множество есть совокупность
элементов).
Лекция 2 Основы ООП.
9
10. ПРИНЦИПЫ ООП
• Инкапсуляция• Наследование
• Полиморфизм
Лекция 2 Основы ООП.
10
11. И Н К А П С У Л Я Ц И Я
ИНКАПСУЛЯЦИЯИнкапсуляция (сокрытие информации) ― это
механизм, который объединяет данные и код,
манипулирующий с этими данными, и защищает и то,
и другое от внешнего вмешательства или
неправильного использования.
Инкапсуляция означает, что объект используется через его
интерфейс – совокупность правил доступа. Инкапсуляция
позволяет изменять реализацию объекта без модификации
основной части программы, если его интерфейс остался
прежним, следовательно, можно дать такое определение
объекта:
Объект – это инкапсулированная абстракция с
четко определенным интерфейсом.
Лекция 2 Основы ООП.
11
12. ОБЕСПЕЧЕНИЕ ИНКАПСУЛЯЦИИ ЗА СЧЕТ ОГРАНИЧЕНИЯ ДОСТУПНОСТИ
УРОВНИ ДОСТУПА К ЧЛЕНАМ КЛАССА1.
Публичный. Публичные члены доступны любому классу в
программе (в C# - public).
2. Модульный. Такие члены доступны классам одного модуля или
сборки (в C# - internal).
3. Дружественный. Дружественные члены доступны классам,
вложенным в данный класс, классам, унаследованным от
данного класса и классам, объявленным как классы - друзья
данного класса (friend).
4. Защищенный. Такие члены доступны только членам самого
класса или классам, унаследованным от данного класса (в C#
- protected).
5. Приватный. Члены доступны только внутри самого класса в C#
- private).
Лекция 2 Основы ООП.
12
13. Свойства инкапсуляции:
• Совместное хранение данных ифункций;
• Сокрытие внутренней информации от
пользователя;
• Изоляция пользователя от
особенностей реализации.
Лекция 2 Основы ООП.
13
14. Н а с л е д о в а н и е
НаследованиеНаследование ― это отношение,
связывающее классы, один из которых
является базовым и называется
родительским, а другой создается на
его основе и называется производным,
наследником. Наследование
заключается в том, что класс-наследник
приобретает свойства и методы
родительского класса и добавляет к
ним собственные
Лекция 2 Основы ООП.
14
15. ЦЕЛИ, ДОСТИГАЕМЫЕ МЕХАНИЗМОМ НАСЛЕДОВАНИЯ:
• исключение из программы повторяющихсяфрагментов кода;
• упрощение модификации программы;
• упрощение создания новых программ на
основе существующих;
• использование библиотек классов, когда
программист может взять за основу классы,
разработанные кем-то другим и создать
наследников с требуемыми свойствами.
Лекция 2 Основы ООП.
15
16. П О Л И М О Р Ф И З М
ПОЛИМОРФИЗМПолиморфизм — это принцип
автоматического выбора
метода, вызываемого
объектом, в соответствии с
типом данного объекта и с
учетом иерархии
наследования.
Лекция 2 Основы ООП.
16
17. ОПРЕДЕЛЕНИЕ ООП
Объектно-ориентированноепрограммирование ― это
методология программирования,
которая основана на представлении
программы в виде совокупности
объектов, каждый из которых
является реализацией
определенного класса, а классы
образуют иерархию на принципах
наследуемости.
Лекция 2 Основы ООП.
17
18. ДОСТОИНСТВА ООП
1. Использование при программировании понятий,близких к предметной области.
2. Возможность успешно управлять большими
объемами исходного кода благодаря
инкапсуляции, то есть скрытию деталей
реализации объектов и упрощению структуры
программы.
3. Возможность многократного использования кода
за счет наследования.
4. Сравнительно простая возможность
модификации программ.
5.Возможность создания и использования
библиотек классов.
Лекция 2 Основы ООП.
18
19. НЕДОСТАТКИ ООП
Необходимо понимать базовые концепции, такие как классы, наследование идинамическое связывание. Для программистов, уже знакомых с понятием
модуля и с абстрактными типами данных, это потребует минимальных усилий.
Для тех же, кто никогда не использовал инкапсуляцию данных, это может
означать изменения мировоззрения и может отнять на изучение значительное
количество времени.
2. Многоразовое использование требует от программиста познакомиться с
большими библиотеками классов. А это может оказаться сложнее, чем даже
изучение нового языка программирования. Библиотека классов фактически
представляет собой виртуальный язык, который может включать в себя сотни
типов и тысячи операций.
3. Проектирование классов — задача куда более сложная, чем их использование.
Проектирование класса, как и проектирование языка, требует большого опыта.
1.
4. Неэффективность на этапе выполнения
5. Излишняя универсальность. В библиотечном классе часто содержится больше
методов, чем это реально необходимо. А поскольку лишние методы не могут
быть удалены, то они становятся мертвым грузом. Это не воздействует на
время выполнения, но влияет на возрастание размера кода.
Лекция 2 Основы ООП.
19