Реферат: Объектно-ориентированный подход к программированию

Property MyList[Index: Integer]: Pointer read GetMyList write SetMyList; // Объявлениеиндексированногосвойства

End;

Здесь мы видим, что свойство MyList индексированно - это элемент списка указателей. В квадратных скобках Вам нужно указать список индексов и их типов. В общем случае, индексом может быть даже строка символов. Далее идет тип свойства и методы записи и чтения. Функция чтения должна иметь список формальных параметров со всеми индексами свойства и возвращать значение того же типа, что и свойство. Процедура записи должна иметь список формальных параметров со всеми индексами свойства и параметр для передачи устанавливаемого значения того же типа что и свойство. Большое значение имеет последовательность указания индексов и обязательность передачи значения свойства в процедуре записи последним в списке формальных параметров. Если индексированное свойство является основным и обращение именно к нему производится чаще остальных, то можно объявить его как default, тогда не нужно указывать имя свойство для доступа к нему, например:

Type

TmyClass = class(TObject);

private

AmyList: Tlist; // Контейнеруказателей

Protected

Function GetMyList(Index: Integer): Pointer; // Функциядоступапочтению

Procedure SetMyList(Index: Integer; Val: Pointer); // Процедурадоступапозаписи

Public

Property MyList[Index: Integer]: Pointer read GetMyList write SetMyList; default; // Объявлениеиндексированногосвойствапоумолчанию

End;

Var

MyClass: TmyClass;

Begin

MyClass:= TmyClass.Create;

MyClass [3]:=AnyObject; // Аналогично MyClass.MyList[3] ]:=AnyObject;

End;

Значение инкапсуляции в объектно-ориентированном программировании трудно переоценить. Чего стоит хотя бы то, что в Delphi к 100% полей классов доступ организован через свойства.

Наследование

Если Вы хотите изменить или дополнить поведение уже существующего класса, то нет никакой необходимости переписывать класс заново. Вам стоит воспользоваться наследованием. Вы должны объявить, что новый класс является потомком уже существующего и добавить в новый класс свойства и методы, которые Вам необходимы или перекрыть существующие методы и свойства:

Type

TmyFirstClass = class(TObject)

Private

Protected

К-во Просмотров: 401
Бесплатно скачать Реферат: Объектно-ориентированный подход к программированию