Java代码显示了重载构造函数,这是Java中的一种常见做法,其中构造函数具有相同的名称,但参数的数量或类型不同。Dart不支持重载构造函数并以不同方式处理这种情况。
1、添加一个Rectangle构造函数
import 'dart:math';
class Rectangle {
int height;
int width;
Point origin;
/**
* 1、this.origin,this.width并this.height使用速记技巧在构造函数的声明中分配实例变量
* 2、this.origin,, this.width和this.height是可选的命名参数。命名参数括在花括号({})中。
* 3、该this.origin = const Point(0, 0)语法指定的默认值Point(0,0)的origin实例变量。指定的默认值必须是编译时常量。此构造函数为所有三个实例变量提供默认值。
*/
Rectangle({this.origin = const Point(0, 0), this.width = 0, this.height = 0});
}
main () {
}
2、重写toString方法
@override
String toString() =>
'Origin: (${origin.x}, ${origin.y}), width: $width, height: $height';
3、使用构造函数
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());
}
运行结果