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


上篇中咱們學習了Flutter必備語言Dart教程02 - 控制流,異常,如今咱們繼續學習Dart中的類和泛型。函數

Class

如下是在Dart中聲明一個簡單類,並建立它的實例的方法。學習

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

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

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

命名的構造函數

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

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

繼承

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

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

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

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

這裏咱們建立兩個命名構造函數,它們只有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 - 控制流,異常

相關文章
相關標籤/搜索