Код и данные, объединенные вместе

Преобразование простого, ориентированного на записи, "механизма обработки" закладных (разработанного нами ранее в этой главе), в объектно-ориентированную версию является хорошим способом рассмотреть взаимоотношения между записями и объектами. Запись типа TPayment, например, может послужить прекрасным объектом. Вот определение типов: •

TPayment = СLASS(TObject){Один элемент в амортизационной табл.} PaymentNum Integer; PayPrincipal : Real, Paylnterest : Real. PrincipalSoFar : Real, InterestSoFar : Real, ExtraPrincipal : Real; Balance : Real,

PROCEDURE GetStringForm(VAR StrPayNum,

StrPayPrin, StrPaylnt, StrPrinSoFar, StrlntSoFar, StrExtraPrin, StrBalance : Stringl5);
END;

В действительности - здесь имеются только два изменения. Одно заключается в том, что вместо record (запись) TPayment теперь определяется как class (класс). Класс является типом объекта. В ранних версиях Object Pascal фирмы Borland объекты, собственно, определялись зарезервированным словом OBJECT, а не CLASS. Переходя к слову

"класс", Borland согласовала свое понимание со старыми языками программирования, такими как - Smalltalk, С++, который является наиболее широко применяемым объектно-ориентированным языком сегодня Типом объекта является его класс. Delphi использует определение класса для создания экземпляра класса в памяти во время выполнения. Этот экземпляр и является тем, что наиболее правильно называть объектом Важно держать это отличие в голове, особенно при первом обращении к ООП: класс - это всего лишь определение, план, если хотите, для конструирования экземпляра класса, который и является фактически объектом. Класс существует в вашем исходном коде; объект существует в памяти во время выполнения. Класс - это листок с записью музыки; объект -это песня разносящася в вечернем воздухе.

"TObject" в скобках, приведенное после CLASS показывает, что наш класс TPayment строится на основе существующего класса TObject в Delphi. TPayment является расширением TObject и содержит его, совсем как цветочная аранжировка может рассматриваться в качестве расширения пустой вазы, и содержащая вазу. Delphi использует TObject как "плиту фундамента" для построения на нем объектов, и вскоре я вернусь к тому, что это означает.

Второе изменение более очевидно: TPayment теперь содержит заголовок процедуры для новой процедуры GetStringForm, которая отсуствует в основанном на записи модуле "механизма обработки" закладной. Все, что нам нужно для вызова GetStringForrn, есть в определении класса: имена процедуры и типов, и порядок всех ее параметров. Процедура или функция, определенная как часть объекта подобным образом, называется методом. Мы уже использовали этот термин ранее в этой книге, говоря о компонентах, поставляемых Delphi для построения приложений. Компоненты Delphi также являются объектами - верно, обладающими некоторыми специфическими особенностями, но, гем не менее, объектами. Вызывая процедуру или функцию, метод показывает, что она является частью объекта и обладает специальной миссией для специфичной структуры данных.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31