propertyимя_свойства: тип_данных read метод_1 write метод_2;
Здесь, «метод_1» – метод, используемый для получения текущего значения переменной, а «метод_2» – метод, необходимый для изменения значения переменной.
Методы и свойства класса могут быть открытыми (public), защищенными (protected) и закрытыми (private). Открытые члены класса составляют так называемый внешний интерфейс и представляют собой функциональность, доступную другим классам. К защищенным членам класса невозможен доступ со стороны. К закрытым же членам класса не могут получить доступ даже подклассы данной иерархии. Закрытыми обычно создаются все свойства класса, а так же вспомогательные методы.
Описание свойств следует размещать после ключевого слова public, а описание полей и методов класса после слова private. Для более наглядного понимания механизма использования свойств, дополним наш класс THameleon свойством Okras, базирующимся на поле Color.
type
THameleon = class
private
Color: TColor;
//метод установки значения поля Color
procedureReColor;
//метод получения значения поля Color
function GetColor: TColor;
public
constructor create;
destructor destroy;
property Okras: integer read GetColor write ReColor;
end;
Для работы со свойствами созданного объекта используется следующая конструкция:
имя_объекта.имя_свойства := значение;
В данном примере изменить свойство объекта можно следующим образом:
var
myHameleon: THameleon;
begin
myHameleon := Thameleon.create;
myHameleon.Okras := Red;
{действия над объектом}
myHameleon.free;
end;
Роль свойств в Delphi велика, об этом говорит хотя бы тот факт, что у имеющихся в распоряжения программиста стандартных классов, изменение значений полей происходит средствами изменений, базирующимися на них свойствах. Свойства используются для реализации принципа инкапсуляции. К сожалению, подробное описание работы со свойствами выходит за рамки данного методического пособия, но читателю рекомендуется более подробно изучить этот вопрос самостоятельно.
У разработчика может появиться необходимость изменить или дополнить реализацию каких-либо методов классов-предков в классах-потомках. Эту возможность даёт использование полиморфизма. Для того, чтобы появилась возможность дополнить или изменить метод в классе-потомке, необходимо использовать ключевое слово virtual. Если метод предполагает реализацию только в классах-потомках, но никак не реализован в классе-предке, то вместе со словом virtual необходимо использовать слово abstract:
type
THameleon = class
…
procedure FastRun; virtual;
function GetColor: TColor; virtual; abstract;
end;
В нашем примере метод FastRun реализован в классе-предке и может быть перезагружен в классах потомках, а для метода GetColor реализация в классе отсутствует. Для того чтобы перезагрузить метод в классах-потомках, необходимо использовать ключевое слово override. Чтобы наглядно проиллюстрировать это, вернемся к классу-потомкуTMountineHameleon:
type
TMountineHameleon = class (THameleon)
…
procedure FastRun ; override;
function GetColor: TColor; override;
end;
Теперь методы FastRun и GetColor можно дополнять или изменять в рамках класса TMountineHameleon.
3. Пример разработки приложения
Для иллюстрации и практического использования теоретических основ кратко рассмотренной выше методологии объектно-ориентированного программирования (ООП) рассмотрим конкретную задачу и реализуем её в интегрированной среде разработки DELPHI.
Попытаемся составить программу, которая позволит определить размеры и вид деформированной металлической заготовки после ударного воздействия механического молота. За основу возьмем три возможных вида заготовок, представленных на рисунке 1. В программе учтем и тот факт, что заготовки могут быть выполнены из различного материала, например, из меди, алюминия, железа и никеля. Ударное воздействие механического молота имеет направление сверху вниз, а реакцией заготовки будет изменение ее геометрических размеров высоты и основания. В связи с этим, помимо получения численного результата расчета изменения геометрических размеров желательно и даже необходимо отобразить вид заготовки до- и после ударного воздействия. Такой прием позволяет улучшить восприятие результатов расчета программы пользователем, что, в конечном итоге, приводит к повышению качества интерфейсной части программы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.