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");
}
}