
5.3.3. Абстрактные классы
Не для всех классов можно создать соответствующие им объекты. Ряд из них, обычно располагающихся на верхних уровнях иерархической структуры , не позволяют этого сделать, либо создаваемые на их основе объекты оказываются неработоспособными. Действительно, если взять, например, классы столов и мебели, то можно создать конкретный стол, но нельзя создать образец мебели вообще.
Классы, для которых нельзя создать соответствующие им объекты называются абстрактными.
5.3.4. Методы
Процедуры и функции определяющие действия над данными в типе CLASS принято называть методами.
В описании типа CLASS указываются только имена подпрограмм со списками формальных параметров (списки формальных параметров могут отсутствовать - это означает, что в подпрограмме используются глобальные переменные). Предполагается, что где-то позже (в разделе подпрограмм или модуле) располагаются тексты этих подпрограмм.
Методы класса определяются так же как и обычные подпрограммы, но в качестве имен подпрограмм используются составные имена вида
имя класса.имя метода
Например, процедура SetLocation из предыдущего примера должна быть записана в виде
Procedure Tpoint.SetLocation (Nx,Ny:Integer);
. . . . . . . . . . . . . . . .
begin
. . . . . .
End;
Здесь Tpoint.SetLocation – это составное имя.
Чтобы метод был выполнен в программе надо также указать составное имя, форма которого имеет вид
имя_объекта.имя_метода
Например инструкция
PointA.SetLocation(A,B);
вызывает применение метода SetLocation к объекту PointA . Фактически инструкция применения метода к объекту - это спецефический способ вызова процедуры.
Правила назначения имен классов и их элементов.
В Object Pascal (и других языках) принято следовать следующим правилам назначения имен классов и их элементов.
Если следовать этим соглашениям, то разработка новых компонентов и чтение исходных текстов станет существенно проще.
1. Все декларации типов начинаются на букву T. Delphi не требует этого, но это делает очевидным, что "TEdit", например, есть определение типа, а не переменная или поле класса.
2. Внутреннее поле для хранения данных свойства должно носить имя, начинающееся с буквы “F”. Например, Fcount : Integer;
3. Параметр метода, значение которого присваивается какому либо полю класса, обычно имеет то же имя, что и поле, но только префикс F заменяется на А, например:
Procedure SetCount( Acount : Integer);
4. Имя метода, с помощью которого записывается значение свойства обычно начинается со слога Set. Например, метод SetStyle должен выполнять запись в свойство Style.
5. Имя метода, с помощью которого у свойства читается его значение, обычно начинается со слога Get, Например, метод GetStyle должен выполнять чтение для свойства Style.
8.Имена методов-обработчиков сообщений обычно начинаются с префикса WM, имена типов сообщений - с TWM, индексов сообщений - с WM_.
9. Имена свойств, через которые происходит обращение к обработчикам событий задаются именами с префиксом on (например, OnClick, OnCreate и т.д.).