📜  Dart的Getter 和 Setter 方法(1)

📅  最后修改于: 2023-12-03 15:14:36.831000             🧑  作者: Mango

Dart的Getter和Setter方法

在Dart中,Getter和Setter方法是一种用于访问私有属性的方式。通过使用这种方法,可以保护属性的状态,并且可以写入,读取或修改私有属性。

Getter方法

Getter方法是一个用于访问私有属性的方法,它不接受任何参数,也不返回任何值。在Dart中,Getter方法的语法使用关键字‘get’,紧跟着是方法名,如下所示:

// 定义私有属性
int _age = 25;

// Getter方法
int get age {
  return _age;
}

在上述示例中,属性_age是私有的,因为它的名称以下划线(_)开头。Getter方法名为‘age’,用于访问该属性。Getter方法只需要在方法名之前使用‘get’关键字,它的返回类型为属性的数据类型。在方法中,可以访问属性_age并返回该值。

Setter方法

Setter方法用于设置私有属性的值。与Getter方法类似,Setter方法也不接受任何参数,并返回空值‘void’。在Dart中,Setter方法的语法使用关键字‘set’,紧跟着是方法名,如下所示:

// 定义私有属性
int _age = 25;

// Setter方法
set age(int newAge) {
  _age = newAge;
}

在上述示例中,属性_age是私有的,Setter方法名为‘age’。Setter方法只需要在方法名之前使用‘set’关键字,接受一个参数newAge,它的类型应与属性_age的数据类型相同。在方法中,可以使用传入的值来设置私有属性的值。

示例

下面是一个完整的示例,展示了如何使用Getter和Setter方法:

class Person {
  String _name;
  int _age;

  Person(this._name, this._age);

  String get name {
    return _name;
  }

  void set name(String newName) {
    _name = newName;
  }

  int get age {
    return _age;
  }

  void set age(int newAge) {
    _age = newAge;
  }
}

void main() {
  var person = Person("Alice", 25);

  print(person.name); // output: Alice
  person.name = "Bob";
  print(person.name); // output: Bob

  print(person.age); // output: 25
  person.age = 30;
  print(person.age); // output: 30
}

在上述示例中,我们定义了一个名为Person的类,该类有两个私有属性:‘_name’和‘_age’。我们还为每个属性定义了Getter和Setter方法。

在main函数中,我们创建了一个名为person的Person对象,并使用Getter方法获取其名称和年龄。然后,我们使用Setter方法修改了名称和年龄,并使用Getter方法获取了新值。

以上就是Dart中的Getter和Setter方法的完整介绍。通过使用这些方法,可以创建更加安全和具有封装性的类和对象。