17
Свойства объектов Лекцию проводит кандидат технических наук ЮШИНИН Сергей Юрьевич Объектно-ориентированное программирование Лекция №2

ООП Лекция №1

  • Upload
    -

  • View
    1.492

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ООП Лекция №1

Свойства объектов

Лекцию проводит

кандидат технических наук

ЮШИНИН Сергей Юрьевич

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

Лекция №2

Page 2: ООП Лекция №1

1. Общий синтаксис объявления свойства

property Active: boolean read FActive write SetActive;

Page 3: ООП Лекция №1

2. Объектная декомпозиция и принципы объектно-ориентированного программирования

Page 4: ООП Лекция №1

2.1. Объектная декомпозиция

Свойства (Properties)

Методы (Methods)

Обработчики событий (Events handlers)

Установки при проектировании

События

События от других объектов

Вызов методов

Установка свойств

Вызов методовУстановка свойств

Page 5: ООП Лекция №1

2.2. Принципы ООП 2.2.1. Абстрагирование

Абстракция фокусируется на существенных с точки зрения наблюдателя характеристиках объекта

Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя

Page 6: ООП Лекция №1

Классификация

Классификация есть средство упорядочение знаний

Класс – это структурный тип данных, который включает описание полей данных, а также методов (процедур и функций), работающих с этими полями.

Page 7: ООП Лекция №1

2.2.2. Инкапсуляция

Инкапсуляция скрывает детали реализации объекта

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

Инкапсуляция - это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение.

Page 8: ООП Лекция №1

2.2.3. Иерархия

Абстракции образуют иерархию

а) наследование б) включение

Иерархия – это расположение частей или элементов целого от высшего к низшему, это упорядочивание абстракций, расположение их по уровням

Page 9: ООП Лекция №1

2.2.4. Полиморфизм (многообразие)

1. Чистый полиморфизм

2. Перегрузка процедур (функций)

3. Переопределение (перекрытие)1. Простой полиморфизм

2. Сложный полиморфизм

Page 10: ООП Лекция №1

2.2.5. Модульность

Модульность позволяет хранить абстракции раздельно

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

Page 11: ООП Лекция №1

3. Объектная модель Delphi

Page 12: ООП Лекция №1

3.1. Синтаксис объявления класса

type <имя_нового_класса>=class (<имя_наследуемого_класса>) private // частные элементы класса protected // защищенные элементы класса public // общедоступные элементы класса published // опубликованные элементы класса end;

type TMyClass = class ... end; type TMyClass = class(TObject) ... end;

Пример:

Page 13: ООП Лекция №1

3.2. Конструкторы и деструкторы

Создание и разрушение объекта:

var Phone:TPhone; begin Phone= TPhone.Create; // Код работы с объектом if Assigned(Phone) then Phone.Destroy; end;

Page 14: ООП Лекция №1

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

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

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

Краткие итоги лекции

1. Объектно-ориентированное программирование представляет собой естественную и эффективную методологию разработки программ.

2. Объектно-ориентированная программа представляет собой совокупность взаимодействующих между собой объектов, каждый из которых является реализацией определенного класса.

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