рефераты рефераты
Главная страница > Реферат: Объектно-ориентированный подход к программированию  
Реферат: Объектно-ориентированный подход к программированию
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

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

Перегрузка методов, процедур и функций

Перегрузка объявляется с помощью зарезервированного слова overload. Рассмотрим пример:

Type

TmyDateClass=class(TObject)

private

Adate: TdateTime;

Public

Procedure SetDate(Val: TDateTime); overload; // Объявляем возможность перегрузки

end;

TmySecondDateClass=class(TmyDateClass)

private

Adate: TdateTime;

Public

Procedure SetDate(Val: string); overload; // Объявляем возможность перегрузки

End;…

implementationProcedure TmyDateClass .SetDate(Val: TDateTime);

Begin

Adate:=Val;

End;

Procedure TmySecondDateClass.SetDate(Val: string);

Begin

Adate:=StrToDate(Val);

End;

Во время работы программы, вы можете использовать во втором классе оба метода SetDate. Если Вы передадите в качестве параметра строку, то будет вызван метод второго класса, а если TdateTime, то метод предка. Можно перегружать и виртуальные методы, только вместо override нужно использовать reintroduce, например:

Type

TmyDateClass=class(TObject)

private

Adate: TdateTime;

Public

Procedure SetDate(Val: TDateTime); overload; virtual; // Объявляем возможность перегрузки

end;

TmySecondDateClass=class(TmyDateClass)

private

Adate: TdateTime;

Public

Procedure SetDate(Val: string); reintroduce; overload; // Объявляем возможность перегрузки

End;Вы можете использовать перегрузку и для процедур и функций необязательно при наследовании, и даже процедур и функций не классового типа, например:

Function Myfunction(Val: string): string; overload;

Begin

Result:=Val+' Ok!'

End;

Function Myfunction(Val: Extended): extended; overload;

Begin

Result:=Val/2;

End;

Или

TmyDateClass=class(Tobject)

private

Adate: TdateTime;

Public

Procedure SetDate(Val: TDateTime); overload; // Объявляем возможность перегрузки

Procedure SetDate(Val: string); overload; // Объявляем возможность перегрузки

End;

Параметры по умолчанию

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

Procedure MyProcedure(Val1: Extended; Val2: Integer = 2);

Begin

End;

Тогда Вы сможете вызывать ее такими способами:

MyProcedure(42.33); // аналогично MyProcedure(42.33, 2);

MyProcedure(15.6, 8);

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

Делегирование

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

Type

TmyEvent = procedure(Sender: Tcomponent); of object; // определение процедурного типа

TmyClass=class(Tcomponent)

Private

FmyEvent: TmyEvent;

Protected

Procedure DoMyEvent;

published

property OnMyEvent: TmyEvent read FmyEvent write FmyEvent;

end;

Допустим, Вы определили функцию function MyProcedure(Sender: Tcomponent) для обработки события с помощью инспектора объектов или написали вручную и налету присвоили объекту: MyClass.OnMyEvent:=MyProcedure. При наступлении определенных условий Ваш класс может вызвать процедуру DoMyEvent, где будет вызвана Ваша процедура MyProcedure так:

Procedure TmyClass .DoMyEvent;

Begin

If Assigned(FmyEvent) then FmyEvent(Self);

End;Мы видим, что был проверен указатель на пользовательскую процедуру обработки события, и если он действителен, то вызывается пользовательская процедура - это и есть делегирование. Обратите внимание, что я разместил свойство OnMyEvent в секции published для того, чтобы программист мог воспользоваться инспектором объектов для написания процедуры обработки события.

Список литературы

Банников. Н.А. Объектно-ориентированный подход к программированию.

Для подготовки данной работы были использованы материалы с сайта www.stikriz.narod.ru.


Страницы: 1, 2, 3

рефераты
Новости