Dart 访问修饰符

Dart 访问修饰符

Dart 并没有独立的访问修饰符,如果向私有化一个属性,通过 _ + 变量名称的方式将其私有化。

重要说明

使用 _ 声明私有属性,当类文件与main 位于同一个文件时,私有化无效。
解决方案 : 将类文件抽离为一个独立文件使用。

示例

/libs/person.dart

class Person {
  late String name;
  late int _age;
  Person(this.name, this._age);
  void Say() {
    print("My name is ${this.name} and I am ${this._age} years old.");
  }
}

main.dart

class Person {
  late String name;
  late int _age;
  Person(this.name, this._age);
  void Say() {
    print("My name is ${this.name} and I am ${this._age} years old.");
  }
}

私有方法

同样,使用 _ 开头的方法为私有方法,只能在类内调用 :

class Person {
  late String name;
  late int _age;
  Person(this.name, this._age);
  void Say() {
    print("My name is ${this.name} and I am ${this._age} years old.");
    _test();
  }

  void _test() {
    print("_test");
  }
}