Ключевое слово this
Ключевое слово this в Dart ссылается на
текущий экземпляр класса. Оно используется
внутри класса для доступа к полям и методам
этого экземпляра, а также для вызова других
конструкторов этого же класса. Чаще всего
this применяется в конструкторах, когда
имя параметра совпадает с именем поля класса,
и нужно явно указать, что присваивание идет
именно полю экземпляра, а не параметру.
Синтаксис
this.field
this.method()
this.namedConstructor()
Пример
Давайте создадим класс Point с полями
x и y и используем this
в конструкторе для присваивания значений полям:
class Point
{
int x;
int y;
Point(this.x, this.y);
}
void main()
{
Point p = Point(1, 2);
print(p.x);
print(p.y);
}
Результат выполнения кода:
1
2
Пример
Давайте используем this для вызова
метода текущего экземпляра класса:
class Greeter
{
String name;
Greeter(this.name);
void greet()
{
print('Hello, ' + this.name);
}
}
void main()
{
Greeter g = Greeter('abcde');
g.greet();
}
Результат выполнения кода:
"Hello, abcde"
Пример
Давайте используем this для вызова
именованного конструктора из другого
конструктора того же класса:
class Point
{
int x;
int y;
Point(this.x, this.y);
Point.origin() : this(0, 0);
}
void main()
{
Point p = Point.origin();
print(p.x);
print(p.y);
}
Результат выполнения кода:
0
0
Смотрите также
-
ключевое слово
super,
которое ссылается на родительский класс -
ключевое слово
static,
которое объявляет статические члены класса -
конструкторы
именованные,
которые можно вызывать через this -
оператор
operator,
который определяет поведение операторов