get 方法是 Dart 中的一种特殊方法,它可以让我们在访问对象属性时自动执行一些操作。在定义一个 get 方法时,我们需要使用关键字 get,后面跟着一个方法名,例如:
get name => name;
上面的代码定义了一个叫做 name 的 get 方法,它会返回一个私有变量 name的值
像访问一个属性一样访问即可 :
class Person {
late String name;
late int _age;
Person(this.name, this._age);
String get Desc {
return "My name is ${this.name} and I am ${this._age} years old.";
}
void Say() {
print(Desc);
}
}
void main(List<String> args) {
Person person = Person("John", 25);
// 此处无法访问私有变量
// person._age = 26;
person.Say();
}
set 是告诉编译器这是一个 setter 方法的关键字。在 set 关键字之后,我们有要在以下代码块中设置其值的 fieldName。
set 更像是一种过滤器,可以对数据设置过程进行校验、控制等操作。
class Person {
late String name;
late int _age;
Person(this.name, this._age);
String get Desc {
return "My name is ${this.name} and I am ${this._age} years old.";
}
set Age(int age) {
if (age >= 0) {
this._age = age;
} else {
this._age = 0;
}
}
void Say() {
print(Desc);
}
}
void main(List<String> args) {
Person person = Person("John", 25);
person.Age = -9;
// 此处无法访问私有变量
// person._age = 26;
person.Say();
}