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}');
輸出: