Перейти к основному содержимому
Версия: 7.0

Инструкция CLASS

Инструкция CLASS - создание нового пользовательского класса.

Синтаксис

CLASS ABSTRACT name [caption] [imageSetting] [: parent1, ..., parentN];

CLASS [NATIVE] name [caption] [imageSetting]
[{
objectName1 [objectCaption1] [imageSetting],
...
objectNameM [objectCaptionM] [imageSetting]
}]
[: parent1, ..., parentN];

Где imageSetting принимает один из видов:

IMAGE [imageLiteral]
NOIMAGE

Описание

Инструкция CLASS объявляет новый класс и добавляет его в текущий модуль.

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

Ключевое слово NATIVE используется в некоторых системных модулях. Оно предназначено для объявления отдельных системных классов, которые создаются до инициализации модулей.

Параметры

  • name

    Имя класса. Простой идентификатор. Имя должно быть уникально в пределах текущего пространства имен.

  • caption

    Заголовок класса. Строковый литерал. Если заголовок не задан, то заголовком класса будет являться его имя.

  • imageSetting

    Настройка иконки класса (если указана после заголовка класса) или статического объекта (если указана после заголовка объекта). Один из вариантов:

  • objectName1, ..., objectNameM

    Имена статических объектов данного класса. Каждое имя задается простым идентификатором. Имя каждого статического объекта доступно через свойство name[StaticObject].

  • objectCaption1, ..., objectCaptionM

    Заголовки статических объектов данного класса. Каждый заголовок является строковым литералом. Если заголовок не задан, то заголовком статического объекта будет являться его имя. Заголовок каждого статического объекта доступен через свойство caption[StaticObject].

  • 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 'Альбомная'
}

CLASS Currency 'Валюта' IMAGE 'currency.png'; // класс с иконкой