跳轉到內容

Vala 程式設計/概念/物件

來自華夏公益教科書,開放的書籍,開放的世界

面向物件程式設計

[編輯 | 編輯原始碼]

Vala 的 OO 系統非常類似於,並且在某種程度上基於像 C#Java 這樣的語言。請注意,與這些語言不同,Vala 不會強迫你採用和 面向物件正規化,但為了獲得最大程度的生產力,強烈建議採用它;並且由於大多數第三方庫和繫結都使用面向物件,最終你將不得不採用它。

通常,Vala 中的 宣告如下

/*Simple Class Derived From GLib.Object*/
public class Sample : GLib.Object {
    
    /*Class Fields*/    
    bool my_field; 
    int my_int_field = 2;

    public Sample () {
        /* Constructor */
    }
    public ~Sample () {
        /* Destructor */
    }
    public void my_method () {
        /*Method Code*/
    }
    public int return_method () {
        /*Return Some Integer*/
        return my_int_field;
    }
    public void param_method (int param) {
        /*Use Arguments*/
    }
}
/*Intermediate Hacking...*/

請注意,如果你宣告一個基類,建議從 GLib.Object 派生它,否則你將無法訪問它的一些功能。

多型性

[編輯 | 編輯原始碼]

Vala 中的繼承非常類似於 C#。Vala 只支援單繼承,即你不能從多個基類繼承一個物件。一般格式如下

/*Inheriting From Other Classes*/
public class Base : GLib.Object {
    public int member;
    public Base (int carg) {
        /*Code Here*/
    }
}
public class Derived : Base {
    public Derived () {
        base (14); // Call base constructor
        /*Code Here*/
    }
}

抽象類

[編輯 | 編輯原始碼]

處理程式

[編輯 | 編輯原始碼]
華夏公益教科書