Инструкция 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 'Альбомная'
}