• 作用:在构造函数中设置属性的默认值
  • 时机:在构造函数体执行之前执行
  • 语法:使用逗号分隔初始化的表达式
  • 场景:常用于设置 final 常量的值
class Rect {
  int height;
  int width;

  // Rect(this.height, this.width);

  //可选参数的构造函数
  // Rect([int height = 2, int width = 10]) {
  //   this.height = height;
  //   this.width = width;
  //   print('${this.height} ${this.width}');
  // }

  //命名构造函数
  // Rect({int height = 2, int width = 10}) {
  //   this.height = height;
  //   this.width = width;
  //   print('${this.height} ${this.width}');
  // }

  //初始化列表
  Rect()
      : height = 4,
        width = 20 {
    print('${this.height} ${this.width}');
  }
}

class Point {
  int x, y, z;

  //普通构造函数
  Point(this.x, this.y, this.z);

  //初始化列表的特殊用法(重定向构造函数)
  Point.twoD(int x, int y) : this(x, y, 0);
}

void main(List<String> args) {
  var R = Rect();
  // var R = Rect(10, 20);
  // print(R.height.toString() + R.width.toString());

  //实例化点
  Point p = new Point(1, 2, 3);
  print(p.z);

  Point p2 = new Point.twoD(1, 2);
  print(p2.z);
}

标签: none

添加新评论