Getters y Setters, también llamados accesores y mutadores, permiten que el programa inicialice y recupere los valores de los campos de clase, respectivamente.
- Los captadores o descriptores de acceso se definen mediante la palabra clave get.
- Setters o mutators se definen usando la palabra clave set.
Un getter / setter predeterminado está asociado con cada clase. Sin embargo, los predeterminados se pueden anular definiendo explícitamente un setter/getter. Un getter no tiene parámetros y devuelve un valor, y el setter tiene un parámetro y no devuelve un valor.
Syntax: Defining a getter Return_type get identifier { // statements }
Syntax: Defining a setter set identifier { // statements }
Ejemplo 1:
El siguiente ejemplo muestra cómo puede usar getters y setters en una clase Dart:
Dart
// Dart Program in Dart to illustrate // getters and setters #GFG class Student { String name; int age; String get stud_name { return name; } void set stud_name(String name) { this.name = name; } void set stud_age(int age) { if(age<= 0) { print("Age should be greater than 5"); } else { this.age = age; } } int get stud_age { return age; } } void main() { Student s1 = new Student(); s1.stud_name = 'Nitin'; s1.stud_age = 0; print(s1.stud_name); print(s1.stud_age); }
Producción:
Age should be greater than 5 Nitin Null
Ejemplo 2:
Dart
// Dart program in Dart to illustrate // getters and setters #GFG void main() { var cat = new Cat(); // Is cat hungry? true print("Is cat hungry? ${cat.isHungry}"); // Is cat cuddly? false print("Is cat cuddly? ${cat.isCuddly}"); print("Feed cat."); cat.isHungry = false; // Is cat hungry? false print("Is cat hungry? ${cat.isHungry}"); // Is cat cuddly? true print("Is cat cuddly? ${cat.isCuddly}"); } class Cat { bool _isHungry = true; bool get isCuddly => !_isHungry; bool get isHungry => _isHungry; bool set isHungry(bool hungry) => this._isHungry = hungry; }
Producción:
Publicación traducida automáticamente
Artículo escrito por nitin_sharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA