Геттер get
Геттер get - это специальный метод класса,
который позволяет получать значение свойства
без явного вызова метода. Геттер объявляется
с помощью ключевого слова get перед именем
свойства. Обращение к геттеру происходит так же,
как к обычному полю класса - без круглых скобок.
Внутри геттера можно выполнять любые вычисления
и возвращать результат с помощью return.
Синтаксис
returnType get name {
// body
}
Пример
Давайте создадим класс Rectangle с приватными
полями _width и _height, а также геттер
area, который вычисляет площадь:
class Rectangle
{
double _width;
double _height;
Rectangle(this._width, this._height);
double get area
{
return _width * _height;
}
}
void main()
{
Rectangle rect = Rectangle(3, 4);
print(rect.area);
}
Результат выполнения кода:
12.0
Пример
Давайте создадим класс User с полями
firstName и lastName, а также геттер
fullName, который возвращает полное имя:
class User
{
String firstName;
String lastName;
User(this.firstName, this.lastName);
String get fullName
{
return '$firstName $lastName';
}
}
void main()
{
User user = User('John', 'Doe');
print(user.fullName);
}
Результат выполнения кода:
"John Doe"
Пример
Геттер может содержать любую логику, например
проверку условия. Давайте создадим класс
Counter с приватным полем _count
и геттером isPositive:
class Counter
{
int _count;
Counter(this._count);
bool get isPositive
{
return _count > 0;
}
}
void main()
{
Counter counter = Counter(5);
print(counter.isPositive);
}
Результат выполнения кода:
true
Пример
Геттер может использоваться внутри класса
другими методами. Давайте создадим класс
Circle с геттером area и методом
describe, который выводит площадь:
class Circle
{
double _radius;
Circle(this._radius);
double get area
{
return 3.14 * _radius * _radius;
}
void describe()
{
print('Area: $area');
}
}
void main()
{
Circle circle = Circle(2);
circle.describe();
}
Результат выполнения кода:
"Area: 12.56"