dart 学习 区分好setter,getter和一般的函数

发布时间:2023年12月28日

看看代码可以很好的分析 setter ,getter 和普通的函数有什么区别

void main() {
  car a = new car("奔驰", 12);
  print(a.name);
  a.age = 100;
  print(a.age);
  a.setname = "宝马"; // 调用 setter
  print(a.getage); // 调用getter

  a.setter("雷克萨斯");
  a.getter();
}

class car {
  String name;
  int age;
  car(this.name, this.age);
  // 这是一个setter
  void set setname(String name) {
    // 这个 void 可以省略
    this.name = name;
  }

  //这个是一个getter
  int get getage => this.age;
  // 这是一个函数
  void setter(String name) {
    this.name = name;
  }

  int getter() {
    return this.age;
  }
}

这段代码展示了在Dart语言中,setter、getter和普通函数之间的区别。

  1. Setter:
    Setter是一个特殊的方法,用于设置类的私有变量值。在给定的代码中,set setname(String name)?是一个setter,它允许外部代码修改name变量的值。在setter方法内部,this.name = name;这行代码实际上就是修改了类的私有变量name的值。

注意:setter的命名规则是?set + 变量名。在setter方法中,第一个参数就是你要设置的变量的名字。
2.?Getter:
Getter是一个特殊的方法,用于获取类的私有变量的值。在给定的代码中,int get getage => this.age;?是一个getter,它允许外部代码获取age变量的值。与setter不同,getter方法没有参数。getter方法的命名规则是?get + 变量名。在getter方法中,你可以直接返回私有变量的值。
3.?普通函数:
普通函数用于执行某些操作,而不是直接访问或修改类的私有变量。在给定的代码中,void setter(String name)?和?int getter()?是普通函数。它们可以接受参数(setter)或返回值(getter)。这些函数并不直接与类的私有变量交互,而是执行一些其他的操作。

总之,setter、getter和普通函数的主要区别在于它们的用途和如何与类的私有变量交互。Setter和getter用于直接访问和修改私有变量,而普通函数则用于执行其他操作。

也就是说如果 name 和 age 变成私有变量的话,使用 setter 和 getter 更加合适

文章来源:https://blog.csdn.net/wniuniu_/article/details/135271805
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。