Шаг 127.
Структура описания классов

    На этом шаге мы рассмотрим общую структуру описания классов.

    Напомним, что в Object Pascal используется новая ООП-модель, в которой для описания классов используется зарезервированное слово class вместо слова object, применявшегося в старой модели.


    Примечание. Для поддержания преемственности от Borland Pascal и обеспечения переноса разработанных программ в Delphi в языке Object Pascal реализована и старая модель. Однако ее использование для создания новых приложений не рекомендуется.

    Общую структуру описания класса можно представить в таком виде:

type
  <ИмяКласса> = class (<ИмяРодительскогоКласса>) 
         <Опубликованные поля>; 
         <Опубликованные методы>; 
         <Опубликованные свойства>; 
   private
         <Приватные поля>; 
         <Приватные методы>; 
         <Приватные свойства>; 
   public
         <Общедоступные поля>; 
         <Общедоступные методы>; 
         <Общедоступные свойства>; 
   protected 
          <Защищенные поля>; 
          <Защищенные методы>; 
          <Защищенные свойства>; 
   published
          <Опубликованные поля>; 
          <Опубликованные методы>; 
          <Опубликованные свойства>; 
   automated
         <Поля реализации OLE-механизма>; 
         <Методы реализации OLE-механизма>; 
         <Свойства реализации OLE-механизма>; 
end;

    По сравнению со старой ООП-моделью были сначала добавлены свойства и директивы protected и published (16-разрядная версия Delphi), а затем - еще одна директива automated (начиная с Delphi 2.0).

    Обратим внимание, что поля, методы и свойства, описанные сразу после заголовка класса, по умолчанию принимаются опубликованными (published) при включенной директиве компилятора {$М+} или общедоступными (public) при выключенной директиве {$М-}.

    Как и ранее количество разделов private, public, protected, published и automated, а также порядок их следования, могут быть произвольными. Семантика этих разделов рассматривается в последующих шагах.

    На следующем шаге мы рассмотрим опережающее описание классов.




Предыдущий шаг Содержание Следующий шаг