对象是否被实例化

问题描述

这里是vala的示例源代码,用于从elementary os网站创建一个简单的GTK应用程序


public class Examples.Application : Gtk.Application {
    public Application () {
        Object (
            application_id: "org.valadoc.examples",flags: ApplicationFlags.FLAGS_NONE
        );
    }

    protected override void activate () {
        var application_window = new Gtk.applicationwindow (this);
        application_window.show_all ();
    }

    public static int main (string[] args) {
        var app = new Application ();
        return app.run (args);
    }
}

我不明白这段代码中的对象?它是什么?它是一个对象吗?如果它是一个对象,那么为什么它没有新的关键字并且没有实例化?

解决方法

您在构造函数中看到的 Object() 是特定于 Vala 的语法,称为:GObject-style construction。它允许您一次性设置所有属性。

这允许您使用 GObject 所谓的“构造属性”:可以在构造期间设置的属性(有时它们甚至只能在构造期间专门设置)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...