Flutter必備語言Dart教程03 - 類,泛型


上篇中我們學習了Flutter必備語言Dart教程02 - 控制流,異常,現在我們繼續學習Dart中的類和泛型。

Class

以下是在Dart中聲明一個簡單類,並創建它的實例的方法。

向類中添加實例變量,以及構造函數

Dart提供了一種構造函數初始化的簡潔語法。如下所示:

如您所見,我們編寫了一行構造函數,第一個參數值將設置爲name,第二個參數值將設置爲age。現在我們就不用寫 this.name = name 這樣的無聊語句了。

命名的構造函數

Dart提供了另一種定義構造函數的方法,稱爲命名構造函數。

如您所見,我們爲構造函數提供了一個名稱。這樣我們在調用不同構造函數時,語義會更加清晰明瞭,不用根據參數去判斷了。

繼承

您可以使用extend關鍵字在Dart中繼承其他類。

這裏我們的Pug類繼承自Dog類,並使用super關鍵字,傳入適當的參數,調用Dog類的構造函數。

您還可以在冒號(:) 之後使用關鍵字this來調用同一類中的其他構造函數。

冒號(:)後邊可以做一些初始化操作,比如調用構造函數、實例變量賦值等。

這裏我們創建兩個命名構造函數,它們只有name參數,並調用默認的Pug構造函數。

方法

類中的方法與Dart中定義普通方法類似。

覆蓋方法也很簡單。

Setter
默認情況下,您在類中定義的任何變量,只需引用對象上的變量名稱即可訪問,例如dog.name,對象變量也可以直接賦值。但有時你想自定義屬性的getter和setter,在Dart中你可以使用 get 和 set 關鍵字來自定義getter和setter。

現在類屬性仍然可見並且可以隨意更改,接下來我們把類屬性設爲私有。

控制可訪問性

默認情況下,您在類中定義的每個屬性和方法都是公共的,可以直接訪問。在Dart中,您可以通過在其名稱前添加“_”來使任何變量或方法變爲私有。讓我們將name屬性設爲私有。

抽象類和方法

您可以使用abstract關鍵字,在Dart中創建一個抽象類。

您只需要在類聲明之前提供abstract關鍵字。對於方法,只需提供簽名並省略實現。

靜態方法

要使字段/方法靜態,只需在聲明之前,添加關鍵字static。

枚舉

Dart支持枚舉,並像其他語言一樣使用。如果你來自Java語言,會很熟悉它們。

泛型

Dart全面支持泛型。假設您正在編寫一個只保存數據的類,並且您希望它能夠保存任何類型的數據。以下是使用泛型編寫該類的方法。


相關文章:

Flutter必備語言Dart教程01 - 變量,類型,函數

Flutter必備語言Dart教程02 - 控制流,異常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章