Class 如何正确地在dart或Flatter中创建类

Class 如何正确地在dart或Flatter中创建类,class,dart,constructor,private,Class,Dart,Constructor,Private,我想用他的构造函数、getter和setter以及处理数据的典型方法创建一个具有私有属性的类 构造函数的定义是否正确?(@required与required之间的区别是什么) 如何正确编写此构造函数 Actividad({必需的_id,必需的_nombre}) 我的代码如下: class Actividad{ int _id; String _nombre; Actividad({required _id, required _nombre}); int get id =&g

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

构造函数的定义是否正确?(@required与required之间的区别是什么)

如何正确编写此构造函数

Actividad({必需的_id,必需的_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活动{
内部id;
字符串_nombre;
Actividad({必需的_id,必需的_nombre});
int get id=>\u id;
字符串get nombre=>\u nombre;
集合id(int nuevoId){
_id=新风;
}
设置nombre(字符串noevonmbre){
_nombre=新nombre;
}
映射toMap(){
返回{
“id”:,
“nombre”:
};
}
@凌驾
字符串toString(){
返回'Actividad{id:$\u id,nombre:$\u nombre}';
}
}
见下文:

class活动{
int-id;
字符串名称;
Actividad({required this.id,required this.nombre});
映射toMap(){
返回{
“id”:id,
“nombre”:nombre
};
}
@凌驾
字符串toString(){
返回'Actividad{id:$id,nombre:$nombre}';
}
}
这就是我写这门课的方式。几点:

  • 按照您编写的方式,我不认为需要显式定义setter和getter,除非您想在其中添加一些内容
  • <> LI>可以考虑生成字段ID和更多的最终值,这将使Actudiad对象不可变
  • required现在是保留字,并由编译器进行严格检查@required是来自过去的注释,只有linter使用它来建议您传递值,如果您不这样做的话
见下文:

class活动{
int-id;
字符串名称;
Actividad({required this.id,required this.nombre});
映射toMap(){
返回{
“id”:id,
“nombre”:nombre
};
}
@凌驾
字符串toString(){
返回'Actividad{id:$id,nombre:$nombre}';
}
}
这就是我写这门课的方式。几点:

  • 按照您编写的方式,我不认为需要显式定义setter和getter,除非您想在其中添加一些内容
  • <> LI>可以考虑生成字段ID和更多的最终值,这将使Actudiad对象不可变
  • required现在是保留字,并由编译器进行严格检查@required是来自过去的注释,只有linter使用它来建议您传递值,如果您不这样做的话