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

Содержание

Слайд 2

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

Снабжение данных смыслом
Контроль использования данных
Способствование к расширению программ

Основные проблемы, которые решает

ООП
Слайд 3

Инкапсуляция есть объединение в единое целое данных и алгоритмов обработки этих

Инкапсуляция есть объединение в единое целое данных и алгоритмов обработки этих

данных. В рамках ООП данные называются полями объекта, а алгоритмы - объектными методами.
Наследование – это свойство объектов порождать своих потомков. Объект-потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их. Каждый объект может иметь только одного родителя.
Полиморфизм - это свойство родственных объектов (т.е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. 

Принципы ООП

Слайд 4

Класс представляет собой составной тип, состоящий из полей (переменных), методов (процедур

Класс представляет собой составной тип, состоящий из полей (переменных), методов (процедур

и функций) и свойств.
Класс должен определять только одну логическую сущность.
Доступ к полям и методам класса осуществляется при помощи уточнённого обращения.

Класс(class)

Слайд 5

Методы представляют собой подпрограммы, которые манипулируют данными, определенными в классе, а

Методы представляют собой подпрограммы, которые манипулируют данными, определенными в классе, а

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

Методы

Слайд 6

Перегрузка методов – это совместное использование одного и того же имени

Перегрузка методов – это совместное использование одного и того же имени

двумя или более методами одного и того же класса, при условии, что их параметры объявлены по разному.
Сигнатура метода – означает имя метода и список его параметров. Применительно к перегрузке это понятие означает, что в одном классе не должно существовать методов с одной и той же сигнатурой.

Перегрузка методов

Слайд 7

Статические данные – это такие данные, которые характерны для всех объектов

Статические данные – это такие данные, которые характерны для всех объектов

данного класса и у всех объектов данного класса они общие.
Перед описанием статических полей и методов сначала пишется ключевое слово class, а потом описывается само поле или метод.
Статические методы не описываются в классе, а лишь объявляются в нем, в то время как описание самого метода происходит за пределами класса.

Статические(классовые) поля и методы

Пример

Слайд 8

Конструктор инициализирует объект при его создании. Как правило конструктор используется для

Конструктор инициализирует объект при его создании.
Как правило конструктор используется для задания

первоначальных значений переменным экземпляра, или же для выполнения любых других установочных процедур, которые требуются для создания полностью сформированного объекта.
Конструктор позволяет избежать ситуации, когда объект создан, но еще не готов к использованию.
Список параметров конструктора может быть как пустым, так и состоящим из одного или более указанных параметров.

Конструктор

Слайд 9

type =class секция1 секция2 … секцияN end; Каждая секция имеет вид:

type
<имя_класса>=class
секция1
секция2

секцияN
end;
Каждая секция имеет вид:
модификатор_доступа
описание

полей
объявления или описания методов и описания свойств

Шаблон создания класса

Слайд 10

Примеры, реализующие принципы ООП Инкапсуляция код 1 код 1 Плохо: Хорошо: код 2 код 2

Примеры, реализующие принципы ООП Инкапсуляция

код 1

код 1

Плохо:

Хорошо:

код 2

код 2

Слайд 11

Пример наследования A = class x,y:integer; Procedure Print(); Begin Writeln(‘Метод родителя’);

Пример наследования
A = class
x,y:integer;
Procedure Print();
Begin
Writeln(‘Метод родителя’);
End;
end;
B = class(A)
z:integer;
end;

Что находится в классе

B после наследования
B = class(A)
z:integer;
x,y:integer;
Procedure Print();
Begin
Writeln(‘Метод родителя’);
End;
end;
Слайд 12

Иерархия наследования

Иерархия наследования