ООП Лекция №1
-
Upload
- -
Category
Technology
-
view
1.492 -
download
0
Transcript of ООП Лекция №1
![Page 1: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/1.jpg)
Свойства объектов
Лекцию проводит
кандидат технических наук
ЮШИНИН Сергей Юрьевич
Объектно-ориентированное программирование
Лекция №2
![Page 2: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/2.jpg)
1. Общий синтаксис объявления свойства
property Active: boolean read FActive write SetActive;
![Page 3: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/3.jpg)
2. Объектная декомпозиция и принципы объектно-ориентированного программирования
![Page 4: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/4.jpg)
2.1. Объектная декомпозиция
Свойства (Properties)
Методы (Methods)
Обработчики событий (Events handlers)
Установки при проектировании
События
События от других объектов
Вызов методов
Установка свойств
Вызов методовУстановка свойств
![Page 5: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/5.jpg)
2.2. Принципы ООП 2.2.1. Абстрагирование
Абстракция фокусируется на существенных с точки зрения наблюдателя характеристиках объекта
Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя
![Page 6: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/6.jpg)
Классификация
Классификация есть средство упорядочение знаний
Класс – это структурный тип данных, который включает описание полей данных, а также методов (процедур и функций), работающих с этими полями.
![Page 7: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/7.jpg)
2.2.2. Инкапсуляция
Инкапсуляция скрывает детали реализации объекта
Интерфейс – это совокупность доступных извне характеристик состояния и поведения объекта. Реализация – это совокупность недоступных извне алгоритмов поведения объекта.
Инкапсуляция - это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение.
![Page 8: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/8.jpg)
2.2.3. Иерархия
Абстракции образуют иерархию
а) наследование б) включение
Иерархия – это расположение частей или элементов целого от высшего к низшему, это упорядочивание абстракций, расположение их по уровням
![Page 9: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/9.jpg)
2.2.4. Полиморфизм (многообразие)
1. Чистый полиморфизм
2. Перегрузка процедур (функций)
3. Переопределение (перекрытие)1. Простой полиморфизм
2. Сложный полиморфизм
![Page 10: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/10.jpg)
2.2.5. Модульность
Модульность позволяет хранить абстракции раздельно
Модульность – это разделение программы на ряд отдельных фрагментов, которые компилируются по отдельности, но могут устанавливать связи между собой.
![Page 11: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/11.jpg)
3. Объектная модель Delphi
![Page 12: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/12.jpg)
3.1. Синтаксис объявления класса
type <имя_нового_класса>=class (<имя_наследуемого_класса>) private // частные элементы класса protected // защищенные элементы класса public // общедоступные элементы класса published // опубликованные элементы класса end;
type TMyClass = class ... end; type TMyClass = class(TObject) ... end;
Пример:
![Page 13: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/13.jpg)
3.2. Конструкторы и деструкторы
Создание и разрушение объекта:
var Phone:TPhone; begin Phone= TPhone.Create; // Код работы с объектом if Assigned(Phone) then Phone.Destroy; end;
![Page 14: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/14.jpg)
3.4. Методы и виды полиморфизма
TPhone=class(TObject) procedure Incoming; // входящий звонок procedure Ring; // звонить procedure HandUp; // ответить (снять трубку) end;
TRoomPhone=class(TPhone)// комнатный телефон procedure Incoming; // входящий звонок procedure Ring; // звонить procedure HandUp; // ответить (снять трубку) end; TCellPhone=class(TPhone) // мобильный телефон procedure Incoming; // входящий звонок procedure Ring; // звонить procedure HandUp; // ответить (снять трубку) end;
![Page 15: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/15.jpg)
3.4.2. Виртуальные методы и сложный полиморфизм
TPhone=class(TObject) procedure Incoming; // входящий звонок procedure Ring; virtual;// виртуальный метод procedure HandUp; // ответить (снять трубку) end; TRoomPhone=class(TPhone) // комнатный телефон procedure Ring; override; // переопределенный метод procedure HandUp; // ответить (снять трубку) end; TCellPhone=class(TPhone) // мобильный телефон procedure Ring; override; // переопределенный метод procedure HandUp; // ответить (снять трубку) end;
![Page 16: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/16.jpg)
3.4.4. Абстрактные методы
TPhone=class(TObject) procedure Incoming; // входящий звонок procedure Ring; virtual; // звонить procedure HandUp; virtual; abstract; // как-то ответить end; TRoomPhone=class(TPhone) // комнатный телефон procedure Ring; override; // звонить procedure HandUp; override; // ответить с комнатного end; TCellPhone=class(TPhone) // мобильный телефон procedure Ring; override; // звонить procedure HandUp; override; // ответить с мобильного end;
![Page 17: ООП Лекция №1](https://reader036.fdocument.pub/reader036/viewer/2022081603/557ed20ad8b42a706f8b502e/html5/thumbnails/17.jpg)
Краткие итоги лекции
1. Объектно-ориентированное программирование представляет собой естественную и эффективную методологию разработки программ.
2. Объектно-ориентированная программа представляет собой совокупность взаимодействующих между собой объектов, каждый из которых является реализацией определенного класса.
3. Каждый объект характеризуется определенным набором свойств, методов и событий. Значения свойств характеризуют состояние объекта. Вызов методов приводит объект в действие. С помощью обработки событий осуществляется обработка результатов работы объекта.