Flutter

Dart语法基础-6 setter & getter

2020-09-14  本文已影响0人  tp夕阳武士

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,
  //来间接获取和设置其他属性或变量的值
}
上一篇下一篇

猜你喜欢

热点阅读