【发布时间】:2015-02-25 08:20:20
【问题描述】:
我在 Dart 中为 getter 和 setter 的概念而苦苦挣扎,而且我读的越多,我就越无法理解其根本目的。以如下代码为例:
main() {
Car car = new Car();
car.doors = 44;
print(car.doors); // 44
}
class Car {
int doors = 4;
}
后来,我决定将“门”设为私有变量,因此我做了以下操作:
main() {
Car car = new Car();
car.doors = 44;
print(car.doors); // 44
}
class Car {
int _doors = 4;
int get doors => _doors;
set doors(int numberOfDoors) => _doors = numberOfDoors;
}
根据代码,_doors 现在是一个私有变量,所以我无法在 main() 中访问它。但是,通过操作doors,我可以间接更改_doors 的值,这是我认为我首先想通过将其设为私有变量来防止的。那么,如果您仍然可以间接操纵它,那么将以前的公共变量变为私有变量的目的是什么?而且,getter 和 setter 是如何改变这些变量的属性的呢?我试图理解基本概念,因为没有它,我不明白如何或为什么使用 getter 和 setter。
【问题讨论】:
标签: dart