Инструкция CLASS
Инструкция CLASS - создание нового пользовательского класса.
Синтаксис
CLASS ABSTRACT name [caption] [: parent1, ..., parentN];
CLASS [NATIVE] name [caption]
[{
objectName1 [objectCaption1],
...
objectNameM [objectCaptionM]
}]
[: parent1, ..., parentN];
Описание
Инструкция CLASS объявляет новый класс и добавляет его в текущий модуль.
Инструкция бывает двух видов: CLASS ABSTRACT для объявления абстрактного класса и просто CLASS для объявления обычного класса. Во втором случае при объявлении класса можно объявить статические объекты этого класса, имена и заголовки которых указываются в ограниченном фигурными скобками блоке.
Ключевое слово NATIVE используется в некоторых системных модулях. Оно предназначено для объявления отдельных системных классов, которые создаются до инициализации модулей.
Параметры
-
nameИмя класса. Простой идентификатор. Имя должно быть уникально в пределах текущего пространства имен.
-
captionЗаголовок класса. Строковый литерал. Если заголовок не задан, то заголовком класса будет являться его имя.
-
objectName1, ..., objectNameMИмена статических объектов данного класса. Каждое имя задается простым идентификатором. Значения имен хранятся в системном свойстве
System.staticName. -
objectCaption1, ..., objectCaptionMЗаголовки статических объектов данного класса. Каждый заголовок является строковым литералом. Если заголовок не задан, то заголовком статического объекта будет являться его имя. Значения заголовков хранятся в системном свойстве
System.staticCaption. -
parent1, ..., parentNСписок имен родительских классов. Каждое имя задается составным идентификатором. Если список родительских классов не задан, то класс наследуется от класса
System.Object.
Примеры
CLASS ABSTRACT Document; // Заголовком этого класса будет 'Document'
CLASS IncomeDocument 'Приход' : Document;
CLASS OutcomeDocument 'Расход' : Document;
CLASS Person;
CLASS Worker;
CLASS Musician : Person, Worker; // множественное наследование
CLASS Barcode 'Штрих-код'; // Родительским классом Barcode будет класс System.Object
CLASS PrintOrientation {
portrait 'Книжная',
landscape 'Альбомная'
}