Java代碼顯示了重載構造函數,這是Java中的一種常見作法,其中構造函數具備相同的名稱,但參數的數量或類型不一樣。Dart不支持重載構造函數並以不一樣方式處理這種狀況。ide
import 'dart:math'; class Rectangle { int height; int width; Point origin; /** * 一、this.origin,this.width並this.height使用速記技巧在構造函數的聲明中分配實例變量 * 二、this.origin,, this.width和this.height是可選的命名參數。命名參數括在花括號({})中。 * 三、該this.origin = const Point(0, 0)語法指定的默認值Point(0,0)的origin實例變量。指定的默認值必須是編譯時常量。此構造函數爲全部三個實例變量提供默認值。 */ Rectangle({this.origin = const Point(0, 0), this.width = 0, this.height = 0}); } main () { }
@override String toString() => 'Origin: (${origin.x}, ${origin.y}), width: $width, height: $height';
三、使用構造函數函數
main() { print(Rectangle(origin: const Point(10, 20), width: 100, height: 200)); print(Rectangle(origin: const Point(10, 10))); print(Rectangle(width: 200)); print(Rectangle()); }
運行結果this