上篇中咱們學習了Flutter必備語言Dart教程02 - 控制流,異常,如今咱們繼續學習Dart中的類和泛型。函數
如下是在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 - 變量,類型,函數