会员

一个类可以有成员。

实例变量可以使用/不使用类型注释进行声明,也可以选择初始化。未初始化的成员具有 null 的值,除非构造函数设置为另一个值。

class Foo {
  var member1;
  int member2;
  String member3 = "Hello world!";
}

使用 static 关键字声明类变量。

class Bar {
  static var member4;
  static String member5;
  static int member6 = 42;
}

如果方法不带参数,快速,返回值,并且没有可见的副作用,则可以使用 getter 方法:

class Foo {
  String get bar {
    var result;
    // ...
    return result;
  }
}

getters 从不接受参数,因此(空)参数列表的括号在上面声明 getter 和调用它们时都被省略,如下所示:

main() {
  var foo = new Foo();
  print(foo.bar); // prints "bar"
}

还有 setter 方法,它们必须只有一个参数:

class Foo {
  String _bar;

  String get bar => _bar;

  void set bar(String value) {
    _bar = value;
  }
}

调用 setter 的语法与变量赋值相同:

main() {
  var foo = new Foo();
  foo.bar = "this is calling a setter method";
}