Классы
Last updated
Was this helpful?
Last updated
Was this helpful?
Определяет класс (ссылочный тип). В отличии от структур, экземпляры классов выделяются в куче. Более полно классы обсуждаются в секции "Объектно-ориентированное программирование".
Определяет интерфейс - неинстанциируемый тип. Чтобы создать экземпляр интерфейса, необходимо сначала реализовать его абстрактные методы в неабстрактном классе. Интерфейсы в Vala имеют больше возможностей, чем интерфейсы в Java или C#. Фактически они могут быть использованы как . Детали будут описаны в секции "Объектно-ориентированное программирование".
------------
wiki: Преимуществом примесей является то, что повышая , этот метод избегает многих проблем . Однако при этом метод накладывает свои ограничения.
Вообщем примеси это так сказать ООП как оно задумывалось изначально, а не как его реализовали создатели С++.
примеси поддерживают следующие языки:
(в виде extension)
(в виде extension)
;
;
;
;
(в виде 'ов);
;
;
;
.
Атрибуты указывают компилятору Vala детали о том, как именно должен работать код на целевой платформе. Их синтаксис прост: [AttributeName]
или [AttributeName(param1 = value1, param2 = value2, ...)]
.
Они в основном используются для привязок в vapi файлах, [CCode(...)]
наиболее используемый атрибут в них. Другой пример - атрибут [DBus(...)]
, используемый для экспортирования удалённых интерфейсов через D-Bus.
Существует возможность создать компактный класс - он не наследуется от Object и следовательно имеет ограниченные возможности, инициализация членов таких классов будет выполнятся быстрее.
в которой подробно рассматриваются преимущества интерфейсов Vala.
"Только классы GObject имеют свойства gobject ( во время выполнения). Эта особенность не выделена на изображении выше."