Методы являются элементами класса, обращение к ним происходит как и к полям через точку, но дополнительно указываются скобки в конце с возможной передачей параметров.
// Методы class CompetitorWait { int number; int timestamp; CompetitorWait ( int number , [ int timestamp = 0 ] ) { this.number = number; this.timestamp = timestamp; } // Метод int getTimestamp ( ) { return this.timestamp; } void setTimestamp ( int n ) { this.timestamp = n; } @override String toString ( ) { return 'Number = [$number] Start = [$timestamp]'; } } // Программа void main ( ) { // Методы var sportsmen = CompetitorWait ( 12 , 15124241421 ); print ( sportsmen.getTimestamp ( ) ); // 15124241421 sportsmen.setTimestamp ( 15124241422 ); print ( sportsmen.getTimestamp ( ) ); // 15124241422 }
Геттеры и сеттеры позволяют производить вычисления и задавать значения через некоторые абстрактные поля, в частности в примере ниже мы не указываем поля right и bottom, но на них установлены get и set операции, которые зависят и влияют на другие поля.
// геттеры и сеттеры class Rectangle { double left, top, width, height; Rectangle(this.left, this.top, this.width, this.height); double get right => left + width; set right(double value) => left = value - width; double get bottom => top + height; set bottom(double value) => top = value - height; } // Программа void main ( ) { // геттеры и сеттеры var rect = Rectangle(3, 4, 20, 15); print(rect.right); // 23 print(rect.left); // 3 rect.right = 12; print(rect.left); // -8 print(rect.bottom); // 19 print(rect.top); // 4 rect.bottom = 20; print(rect.top); // 5 }