Архив рубрики «Объектно-ориентированные технологии»

Использование методов-сообщений для вызова корреспондирующих методов

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

Const WM_USER1=WM_APP; // Идентификатор номера сообщения Type
Type
TNumMemo=Class(TMemo)
Protected // Дополнительно объявляем метод сообщения
Procedure WMNumStr(Var Msg: TMessage); Message WM_USER1;

Прочитать остальную часть записи »

Понятие события в Delphi — синтаксис, примеры

Наиболее общее определение события — любое происшествие, вызванное вмешательством пользователя, поведением системы или логикой кода приложения. Событие в программе может быть связано с некоторым кодом, называемым обработчиком события и отвечающим на это происшествие. С точки зрения разработчика, событие — это имя, к которому обработчик события может быть присоединен в программе.
Прочитать остальную часть записи »

Свойства-массивов, переопределение свойств при наследовании

Объявления свойств-массивов

Объявление свойств-массивов имеет ряд особенностей как при их объявлении, так и при использовании. Синтаксис объявления свойства-массива класса:

Property < имя cвoucmвa>[[Const] < индекс1>:< тип идекса>
[; [Coast] < индекс2>:< тип индекса>] ]: < тип данных>
[Read < метод чтения>]
[Write < метод записи>][; Default];

Прочитать остальную часть записи »

Свойства классов, синтаксис объявления, типы данных свойств

Свойства классов (property) — это атрибут формы или другого компонента, который влияет либо на визуальное поведение, либо на операции, выполняемые формой или компонентами. Фактически свойство — это просто имя, связанное с полем напрямую или методами записи и/или чтения и наиболее видимая часть класса.
Прочитать остальную часть записи »

Полиморфизм — реализация, параметрический полиморфизм

Полиморфизм (или много форм) — третья и самая мощная грань ООП. Полиморфизм может быть описан как поведенческая абстракция, — возможность вызывать действие или поведение по имени какого-либо конкретного экземпляра класса, не зная в точности, какая именно реализация метода при этом будет вызвана, и даже не зная в точности, к какому типу принадлежит данный объект. Тип экземпляра класса и реализация метода, который будет вызван в процессе выполнения программы, не могут быть полностью определены на фазе трансляции. Более того, процесс будет выполняться динамически — один и тот же код может работать с экземплярами разных классов.
Прочитать остальную часть записи »

Структура объекта, RTTI, операторы Is и As, иерархия классов Delphi

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

Внутреннюю структуру объекта класса

Прочитать остальную часть записи »

Абстрактные методы — объявление, наследование, полиморфизм

Абстрактными называются методы, которые определены в классе, но не содержат его реализации в этом классе. Они никогда не вызываются в объявленном классе и должны быть переопределены и реализованы в его наследниках. Абстрактными могут быть только виртуальные и динамические методы. Их основное назначение, — абстрагируясь от частностей, быть родоначальниками иерархии конкретных методов в классах наследниках. Такие методы лежат в основе принципа полиморфизма.
Прочитать остальную часть записи »

Виртуальные и динамические методы, замещающие методы

Виртуальные методы

Адреса этих методов определяются лишь во время выполнения программы из специальной таблицы. Такой поиск называют еще поздним связыванием (late binding). Решение о вызове конкретного метода решается в процессе выполнения программы, и решение основывается на данных, хранящихся в объекте, вызывающем метод.
Прочитать остальную часть записи »

Наследование в ООТ — основные понятия, поведение методов при наследовании

Наследование (субклассирование) — это способность одного класса использовать характеристики другого. Оно использует отношение «вид чего-либо» между двумя классами. Этот простой принцип означает, что если вы хотите создать новый класс, лишь немного отличающийся от известного, то нет необходимости в переписывании заново полей и методов уже существующих у класса-предка.
Прочитать остальную часть записи »

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

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

Синтаксис объявления классовых методов:

Type < имя клacca>=Class[(< имя родительского класса>)]
Class Procedure < имя процедуры>[(< параметры>)};
Class Function < имя функции>[(< параметры>)]:< тип результата>
End;

Прочитать остальную часть записи »

Конструкторы и деструкторы в Delphi

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

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

Методы-функции и методы-процедуры — синтаксис объявления, реализация методов и варианты вызова методов

Методы-процедуры и методы-функции объявляются так же, как и обычные процедуры и функции, с той лишь разницей, что это делается не в блоке объявлений программы (до главного Begin), а в описании класса.
Прочитать остальную часть записи »

Виды и назначение методов класса, Слова-директивы, используемые при объявлении методов и их назначение

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

Всего существует шесть разновидностей методов объектов:
методы-процедуры, которые аналогичны самостоятельным процедурам, за исключением того, что они «присоединены» к тому классу, в котором заданы, и могут быть вызваны лишь через какой-либо активный экземпляр этого класса;
Прочитать остальную часть записи »

Свойства объектов, понятие интерфейса класса

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

Каждая переменная типа класса содержит не значение объекта, а лишь ссылку (указатель) на область памяти, в которой содержится объект, т.е. переменная типа класс — это просто ссылка на экземпляр. Таким образом, в OP все экземпляры или объекты могут быть только динамическими.
Прочитать остальную часть записи »

Понятие объекта и класса, инкапсуляции, наследования и полиморфизма

Объект — это переменная структурированного типа данных, включающая, как элементы данных, так и операции с этими элементами, упакованными вместе для удобства использования. Объединение данных и кода в одну конструкцию называется инкапсуляцией (encapsulation).
Прочитать остальную часть записи »




Статистика