02Dart:并不支持构造函数的重载

Java 代码中,使用了重载构造函数的方法,该方法在 Java 中很普遍,重载的构造函数和之前的构造函数具有相同的方法名,但是在方法的参数个数或者参数类型上有些许不同。Dart 并不支持构造函数的重载,而采用了构造方法使用可选类型参数

import 'dart:math';

class Rectangle {

  int width;

  int height;

  Point origin;

// 这个构造方法使用了可选类型参数。

  Rectangle({this.origin = const Point(0, 0), this.width = 0, this.height = 0});

//  this.origin, this.width 和 this.height 使用了 Dart 提供的简便方法来直接对类中的实例变量进行赋值。

// this.origin, this.width 和 this.height 嵌套在闭合的花括号中 ({}) ,用来表示它们是可选的命名参数。

// this.origin = const Point(0, 0) 这样的代码表明给实例变量 origin 提供了默认的值 Point(0,0),默认值必须是在编译器就可以确定的常量。上述代码中的构造方法为三个实例变量都提供了默认参数。

  @override

String toString() =>

      'Origin: point: (${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());


}

你可能感兴趣的:(02Dart:并不支持构造函数的重载)