Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Типы методов

Основные положения объектно-ориентированного программирования | Принципы ООП | Элементы классов | Перегрузка методов | Свойства | Объявление и создание объекта | Уничтожение объекта | События. Взаимодействие объектов. | От структурированного программирования к ООП | Основные задачи структурного программирования |


Читайте также:
  1. IV. Установление методов и технологии ремонта ТС
  2. IX. Данные лабораторных и инструментальных методов исследования.
  3. Алгоритм выбора методов финансового оздоровления
  4. Анализ форм, средств, методов обучения на уроке (авторских методик)
  5. Влияние учения Сократа, Платона и Аристотеля на развитие методов ведения переговоров
  6. Вопрос 1. Понятие и классификация методов государственного управления
  7. Вопрос 3 - Типы производства и их количественная и качественная характеристика с точки зрения использования оборудования, оснастки, методов обработки и организации труда.

Методы объекта могут быть описаны как статические (static), виртуальные (virtual), динамические (dinamic) или как методы обработки сообщения (message-handling), для чего к ним добавляются соответствующие директивы.

§ Статические методы. Статические методы работают подобно обычным процедурам или функци­ям. Этот тип методов устанавливается по умолчанию. Адрес такого метода известен уже на стадии компиляции, и компилятор в коде программы оформляет все вызовы данного метода как статические. Такие методы рабо­тают быстрее других, однако не могут быть перегружены в целях полимор­физма объектов.

§ Виртуальные методы. Вызов виртуальных методов из-за возможности их перегрузки немного сложнее, чем вызов статических, так как во время компиляции адрес конкрет­ного вызываемого метода не известен. Для решения этой задачи компилятор строит таблицу виртуальных методов (VMT – Virtual Method Table), обеспечи­вающую определение адреса метода в процессе выполнения программы. VMT содержит все виртуальные методы предка и виртуальные методы самого объек­та, поэтому виртуальные методы используют несколько больший объем памяти, чем методы динамические, однако их вызов происходит быстрее.

§ Динамические методы. Динамические методы в целом подобны виртуальным методам, но об­служиваются другой диспетчерской системой. Каждому динамическому ме­тоду компилятор назначает уникальное число и использует его вместе с адре­сом метода для построения таблицы динамических методов (DMT– Dynamic Method Table). В отличие от VMT, DMT содержит методы лишь данного объ­екта, благодаря чему обеспечивается экономия используемой памяти, но за­медляется вызов метода, поскольку для поиска его адреса, скорее всего, будет пересмотрена не одна DMT в иерархии объектов.

§ Методы обработки сообщения. Методы обработки сообщений предназначены для обработки приходящих сообщений, с помощью которых происходит обмен информацией в операци­онной системе Windows. Значе­ние после ключевого слова message определяет сообщение, в ответ на которое вызывается данный метод. Такие методы создаются для реакции на те или иные сообщения Windows. Они никогда не вызываются непосредственно из программы.

Например:

type

TTextBox = class(TCustomControl)

private

procedure WMCharfvar Message: TWMChar); message WM_CHAR;

end;

где WM_CHAR – константа, определяющая данное сообщение. Две буквы WM (Windows Message) говорят о том, что это сообщение операционной системы Windows. В данном случае это связано с нажатием клавиш клавиатуры.


Дата добавления: 2015-07-25; просмотров: 48 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Области видимости| Переопределение методов

mybiblioteka.su - 2015-2024 год. (0.01 сек.)