Flutter學習-day05 Dart構造函數與訪問權限修飾符

Dart 類的構造方法和類的私有屬性的定義

首先定義一個Rect類,用於計算面積

class Rect{
  int _height;//定義成私有成員(前面加下劃線),私有成員不能被外部直接訪問
  int _width;

  Rect(this._height,this._width);//Dart默認構造函數 只能聲明一次,Java可以聲明多個
  Rect.heigthSet(this._height);//命名構造函數 可以聲明多個
  Rect.widthSet(this._width);//命名構造函數 可以聲明多個
  Rect.allSet(this._width,this._height);//命名構造函數 可以聲明多個
  Rect.allSet2():_height=5,_width=5;//帶默認參數的構造方法
  
  //set get屬性方法,外部通過訪問屬性的形式調用該方法
  set setHeight(int value){
    this._height=value;
  }

  //getter屬性方法,不用括號,外部通過訪問屬性的形式調用該方法
  get getHeight{
    return _height;
  }

  //getter屬性方法,不用括號,外部通過訪問屬性的形式調用該方法
  get Area{
    return _height*_width;
  }

  //定義私有方法
  int _area(){
    return _height*_width;
  }

  int getArea(){
    return _area();
  }

  String getMessage(){
    return('獲取傳入的高,寬值:$_height $_width 面積計算爲:');
  }
}

 

 

  // //默認構造函數
  // Rect r=new Rect(2,3);
  // print('${r.getMessage()} ${r.getArea()}');
  // print('${r.getMessage()} ${r.Area}');

  // //通過set方法修改屬性
  // r.setHeight=10;
  // r.setWidth=10;

  // print('${r.getMessage()} ${r.getArea()}');
  // print('${r.getMessage()} ${r.Area}');

  Rect r=new Rect(3,8);
  print(r.getHeight);
  print('${r.getMessage()} ${r.Area}');

 

輸出:

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