1. get 和 set的使用
main(List<String> args) {
final p1 = Person();
p1.name = 'prf';
print(p1.name);
// p1 = Person();//这个写法是不行的,因为p1是被final修饰的]
//final表示这个最后一次赋值的意思;
final Person p2 = Person();
p2.name = 'cici';
print(p2.name);
final Person p3 = Person();
p3.setName = '韩梅梅';
print(p3.getName);
}
class Person {
String name;
set setName(String name) {
this.name = name;
}
String get getName {
return this.name;
}
//getter 语法糖
String get getTheName => this.name;
}
使用getter来定义只读的计算属性属性:
class MyClass {
int _aProperty = 0;
int get aProperty => _aProperty;
set aProperty(int value) {
if (value >= 0) {
_aProperty = value;
}
}
//你还可以使用 getter 来定义计算属性:
List<int> _values = <int>[]; //这里定义了一个包含<int>元素的的List;
//为MyClass声明一个方法
void addValue(int value) {
_values.add(value);
}
//定义一个只读属性:
int get counstOf_values {
return _values.length;
}
//注意,这里和swift的计算属性语法是不一样的
//重温一下swift的计算属性:
// var center: Point {
// get {
// let centerX = origin.x + (size.width / 2)
// let centerY = origin.y + (size.height / 2)
// return Point(x: centerX, y: centerY)
// }
// set(newCenter) {
// origin.x = newCenter.x - (size.width / 2)
// origin.y = newCenter.y - (size.height / 2)
// }
// }
//计算属性的概念:
//计算属性不直接存储值,而是提供一个 getter 和一个可选的 setter,
//来间接获取和设置其他属性或变量的值
}
网友评论