Разделы презентаций


Типи методів

“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Статичні методиСтатичний метод (static) IAmAStatic працює так само як звичайна процедура або функція. Цей тип методів встановлюється за замовчуванням. Адреса такого методу

Слайды и текст этой презентации

Слайд 1“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В.2015
Лекція №5
Типи методів
Методи

об’єкта можуть бути описані як статичні (static), віртуальні (virtual), динамічні

(dynamic) або як методи обрабки повідомлень (message). Розглянемо наступний приклад:

“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В.2015Лекція №5Типи методівМетоди об’єкта можуть бути описані як статичні (static),

Слайд 2“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Статичні

методи
Статичний метод (static) IAmAStatic працює так само як звичайна процедура

або функція. Цей тип методів встановлюється за замовчуванням. Адреса такого методу відома вже на стадії компіляції, і компілятор в коді програми оформляє всі виклики даного методу як статичні. Такі методи працюють швидше інших, але не можуть бути перевантажені з метою поліморфізма об’єктів.

“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Статичні методиСтатичний метод (static) IAmAStatic працює так само

Слайд 3“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Віртуальні

методи
Метод IAmAVirtual оголошений як віртуальний (virtual). Виклик таких методів із

за можливості їх перевантаження складніший, чим виклик статичного методу, так як під час компіляції адреса конкретного метода що викликається невідома. Для рішення цієї задачи компілятор будує таблицю віртуальних методів (VMT — Virtual Method Table), яка забезпечує визначення адреси метода в процесі виконання програми. VMT містить всі віртуальні методи пробатька і віртуальні методи самого об’єкта, тому віртуальні методи використовують більший об’єм пам’яті, чим методи динамічні, однак їх виклик відбувається швидше.
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Віртуальні методиМетод IAmAVirtual оголошений як віртуальний (virtual). Виклик

Слайд 4“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Динамічні

методи
Динамічні (dynamic) методи IAmADynamic в цілому подібні до віртуальних методів,

але обслуговуються іншою диспетчерською системою. Кожному динамічному методу компілятор назначає унікальне число і використовує його разом з адресою метода для побудови таблиці динамічних методів (DMT — Dynamic Method Table). На відміну від VMT, DMT містить методи лише даного об’єкта, завдяки чому забезпечується економія пам’яті що використовується, але сповільнюється виклик методу, оскільки для пошуку його адреси, швидше всього, буде переглянута не одна DMT в ієрархії об’єктів.
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Динамічні методиДинамічні (dynamic) методи IAmADynamic в цілому подібні

Слайд 5“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Методи

обробки повідомлень
Методи обробки повідомлень (message_handling) IAmAMessage.
Для оголошення методів обробки повідомлень

викорисовується директива message, яка вказує компілятору, що даний метод є динамічним, і його зміщення в таблиці динамічних методів визначається ім’ям повідомлення, яке вказане після диретиви. Такі методи створюються для реакції на ті або інші повідомлень Windows.

 



Особливості оголошення методів обробки повідомлень:
- в оголошенні МОП повинна використовуватися директива message;
- безпосередньо за директивою message повинна бути вказана ціла константа, яка сприймається як динамічний індекс метода;
- МОП можуть бути прочедурами;
- МОП мають тільки один параматер, який повинен бути параметром-змінною;
- ім’я метода, ідентифікатор і тип параметра МОП могуть бути довільними;
- для перевизначення МОП використовується не директива override, а директива message з тим самим індексом, як і у попереднього метода.
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Методи обробки повідомленьМетоди обробки повідомлень (message_handling) IAmAMessage.Для оголошення

Слайд 6“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Перевизначення

методів
Перевизначення (overriding) методів в Object Pascal реалізує концепцію поліморфізма. Це

дозволяє змінити поведінку метода від спадкоємця до спадкоємця. Перевизначення метода можливо тільки в тому випадку, якщо спочатку він був оголошений як virtual або dynamic. Для перевизначення методу при його оголошення замість ключових слів virtual або dynamic необхідно вказати ключеве слово override. Розглянемо приклад перевизначення методів IAmAVirtual і IAmADynamic.







Директива override приводить до заміщення стрічки опису похідного методу в VMT стрічкою опису нового методу. Якщо оголосити нові функції з ключевим словом virtual або dynamic, а не override, то замість заміщення старих будуть створенні нові методи. У випадку перевизначення статичного методу, новий варіант просто повністтю замінить статичний метод батька.
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Перевизначення методівПеревизначення (overriding) методів в Object Pascal реалізує

Слайд 7“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Перевантаження

метода
На зразок звичайним процедурам і функціям, методи можуть бути перевантажені

таким чином, щоб клас містив декілька методів з одним ім’ям, але з різними списками параметрів. Методи що перевантажуються повинні бути оголошені з зазначенням директиви overload (використовувати цю директиву при описі першого метода що перевантажується необов’язково). Наприклад оголошення об’єкта з методами що перевантажуються:
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Перевантаження методаНа зразок звичайним процедурам і функціям, методи

Слайд 8“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Дублювання

імен методів
Іноді може знадобитися до одного з класів додати метод,

що заміщає метод з тим самим ім’ям, але належить предку цього класу. В даному випадку треба не перевизначити похідний метод, а повністю його замінити. Якщо просто додати такий метод в новий клас, то компілятор видасть попередження про те, що новий метод ховає метод базового класу з тим самим ім’ям. Для усунення цієї помилки в новому методі вкажіть директиву reintroduce:
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Дублювання імен методівІноді може знадобитися до одного з

Слайд 9“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Контекст

метода і параметр Self
У всіх методах об’єкта доступна неявна змінна

Self, яка представляє собою вказівник на той екземпляр об’єкта, який був використаний при даному виклику цього методу. Змінна Self передає методу компілятором в якості схованого параметру.
Код метода і поля даних об’єкта використовуються разом і мають один і той самий контекст. Параметр Self практично є ідентифікатором, який належить методу об’єкта.
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Контекст метода і параметр SelfУ всіх методах об’єкта

Слайд 10“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015
Лекція №5
Контекст

метода і параметр Self
Параметр Self є частиною фізичного запису активації

для всіх викликів методів.
“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2015Лекція №5Контекст метода і параметр SelfПараметр Self є частиною

Слайд 11Питання:

Які є типи методів.
Для чого призначена VMT.
Для чого призначена DMT.
Сумісність

типів об’єктів.

“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2012
Лекція

№5
Питання:Які є типи методів.Для чого призначена VMT.Для чого призначена DMT.Сумісність типів об’єктів.“Застосування засобів ООП в лінгвістичних задачах”

Слайд 12 Література:

Гради Буч Обьектно-ориентированный анализ и

проектирование с примерами приложений на С++. 2002 г. - 250

с.
Миронченко А.С. Императивное и обьектно-ориентированое программирование на Turbo Pascal и Delphi.
Т.А. Павловская Паскаль. Программирование на языке высокого уровня.: Учебник для вузов. – СПб.: Питер, 2007. -393 с. Ил.
Архангельский А.Я. Программирование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi, 2007 г. - 1248 с.
Гофман В. Э., Хомоненко А. Д. Delphi. Быстрый старт. — СПб.: БХВ-Петербург, 2003. — 288 с: ил.
Шупрута В.В. Delphi 2005. Учимся программировать.


“Застосування засобів ООП в лінгвістичних задачах” Корпильов Д.В. 2012

Лекція №4

Література:Гради Буч Обьектно-ориентированный анализ и проектирование с примерами приложений на С++. 2002

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика