【问题标题】:how create a class in dart or flutter correctly如何在飞镖或颤振中正确创建一个类
【发布时间】:2021-08-15 21:12:49
【问题描述】:

我想用他的构造函数、getter 和 setter 以及操作数据的典型方法创建一个具有私有属性的类。

构造函数定义是否正确? (@required 和 required 有什么区别)

我怎样才能正确地编写这个构造函数?

Actividad({required _id, required _nombre});

我的代码如下:

class Actividad{
  int _id;
  String _nombre;

  Actividad({required _id, required _nombre});

  int get id => _id;
  String get nombre => _nombre;

  set id(int nuevoId) {
    _id = nuevoId;
  }
  set nombre(String nuevoNombre) {
    _nombre = nuevoNombre;
  }

  Map<String, dynamic> toMap() {
    return {
      'id': _id,
      'nombre': _nombre
    };
  }

  @override
  String toString() {
    return 'Actividad{id: $_id, nombre: $_nombre}';
  }
}

【问题讨论】:

    标签: class dart constructor private


    【解决方案1】:

    见下文:

    class Actividad {
      int id;
      String nombre;
    
      Actividad({required this.id, required this.nombre});
    
      Map<String, dynamic> toMap() {
        return {
          'id': id,
          'nombre': nombre
        };
      }
    
      @override
      String toString() {
        return 'Actividad{id: $id, nombre: $nombre}';
      }
    }
    
    

    这就是我编写课程的方式。几点:

    • 按照您的编写方式,我认为不需要显式定义 setter 和 getter,除非您想在其中放入一些东西
    • 您可以考虑将字段设置为 id 和更多 final - 这将使您的 Actividad 对象不可变
    • required 现在是保留字,并由编译器进行严格检查。 @required 是过去的注释,仅由 linter 使用,建议您在不传递值时传递值

    【讨论】:

      猜你喜欢
      • 2021-02-09
      • 2023-03-29
      • 2018-09-10
      • 2020-04-27
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 2020-08-14
      • 2020-08-12
      相关资源
      最近更新 更多