ОСНОВНЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Интуитивные определения основных понятий
К Л А С С
СОСТАВ КЛАССА
ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ КЛАССОВ
ОБЪЕКТЫ
Объект традиционного языка
Схема инкапсуляции объекта в ООП
СООТНОШЕНИЕ ПОНЯТИЙ КЛАССА И ОБЪЕКТА
ПРИНЦИПЫ ООП
И Н К А П С У Л Я Ц И Я
ОБЕСПЕЧЕНИЕ ИНКАПСУЛЯЦИИ ЗА СЧЕТ ОГРАНИЧЕНИЯ ДОСТУПНОСТИ
Свойства инкапсуляции:
Н а с л е д о в а н и е
ЦЕЛИ, ДОСТИГАЕМЫЕ МЕХАНИЗМОМ НАСЛЕДОВАНИЯ:
П О Л И М О Р Ф И З М
ОПРЕДЕЛЕНИЕ ООП
ДОСТОИНСТВА ООП
НЕДОСТАТКИ ООП
234.00K
Категория: ПрограммированиеПрограммирование

Основные понятия объектно-ориентированного программирования

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
English     Русский Правила