美文网首页Flutter
Dart语法基础-6 setter & getter

Dart语法基础-6 setter & getter

作者: tp夕阳武士 | 来源:发表于2020-09-14 09:27 被阅读0次

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

    相关文章

      网友评论

        本文标题:Dart语法基础-6 setter & getter

        本文链接:https://www.haomeiwen.com/subject/lvmuektx.html