3、Dart基礎 使用可選參數(而不是重載)

Java代碼顯示了重載構造函數,這是Java中的一種常見作法,其中構造函數具備相同的名稱,但參數的數量或類型不一樣。Dart不支持重載構造函數並以不一樣方式處理這種狀況。ide

一、添加一個Rectangle構造函數

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 () {
}

二、重寫toString方法

@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

相關文章
相關標籤/搜索