在DartPad中运行这个,为什么对象a
会被相同对象类型的后续声明和示例化更新?如何防止第一个对象被更新?
void main() {
SampleClass a = SampleClass(publicParam: 'A');
print('1. a: ${a.getPrivateProperty}');
SampleClass b = SampleClass(publicParam: 'B');
print('2. a: ${a.getPrivateProperty}');
print('3. b: ${b.getPrivateProperty}');
SampleClass(publicParam: 'C');
print('4. a: ${a.getPrivateProperty}');
print('5. b: ${b.getPrivateProperty}');
}
class SampleClass {
final String publicParam;
static late String _privateProperty;
SampleClass({
required this.publicParam,
}) {
_privateProperty = publicParam;
}
// Getter
String get getPrivateProperty => _privateProperty;
}
字符串
输出量:
1. a: A
2. a: B
3. b: B
4. a: C
5. b: C
型
有没有人可以帮我尽可能详细的?非常感谢我认为这与构造函数有关,但我真的不确定。
1条答案
按热度按时间dgsult0t1#
原因是您的
_privateProperty
属性是static,这意味着它在类的所有示例中共享。我不知道你拥有另一个私有属性的动机,但假设你需要它,我会像这样重写你的类:
字符串