習慣寫OO的人,一定對物件或屬性的封裝不陌生,Dart也支援getter、setter的寫法 如以下(可以在線上編輯器上運行) :

class Customer{

  String _name ;

  String get name() => "HELLO "+ _name ; //getter

         set name(String value) => _name = value  ; //setter

  Customer(this._name);

}

class NumTest{

    int _n1 ;

    int get n1(){return (_n1 == null)?0:_n1; } //加入判斷式,如果為null,return 0

        set n1(int v) => _n1 =  v;

}

main() {

  var t = new Customer("andy");

  print(t.name); //display HELLO andy

  var n = new NumTest();

  print(n.n1); //display 0

}

再來試寫多型的override,宣告方式與java一樣,用extends關鍵字,display方法輸出String型別的資料,在輸出時可用${}將變數置入其中,${}會將變數值直接輸出為字串,挺方便的。

class Customer{

  String _name = "andy" ;

  String get name() =>  _name ;

         set name(String value) => _name = value  ;

  String display(){return this._name;}

 

}

class c extends Customer  {

  String _name = "bill" ;

  String get name() =>  _name ;

  set name(String value) => _name = value  ;

  String display(){return this._name;}

}

main() {

  var c = new Customer();

  print( "Hello ${c.display()}");  //display Hello andy

}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 忙裡偷閒 的頭像
    忙裡偷閒

    忙裡偷閒的部落格

    忙裡偷閒 發表在 痞客邦 留言(0) 人氣()