Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtOpStSF 84 of 113 menu
◀ ▶

Статическое поле в Dart

Статическое поле принадлежит типу, а не отдельному объекту. Его объявляют внутри класса со словом static. Снаружи к нему обращаются как Post.count, без переменной с экземпляром:

class Post { static int count = 0; String title = ""; Post() { count = count + 1; } }

Вызовем конструктор и посмотрим на результат:

Post(); Post(); print(Post.count);

Каждый вызов Post() увеличивает одно и то же поле count. У двух разных объектов свои заголовки, а счетчик общий для всего класса.

Изменяемое статическое поле живет, пока работает программа. Его используют для общего состояния - лимитов, кэша в памяти, последнего сообщения. Доступ снаружи лучше ограничивать приватным именем и узкими методами:

class Post { static int _hits = 0; static int maxHits = 5; static bool tryHit() { if (_hits >= maxHits) { return false; } _hits = _hits + 1; return true; } static int remaining() { return maxHits - _hits; } } Post.tryHit(); Post.tryHit(); Post.tryHit(); Post.tryHit(); Post.tryHit(); Post.tryHit(); print(Post.remaining());

Поле _hits видно только в этом файле. Снаружи остаются команды tryHit и remaining - так проще не испортить счетчик прямой записью.

Сделайте класс Employee со статическим полем count, равным 0. В конструкторе увеличивайте count на 1. Создайте два объекта и выведите Employee.count.

Сделайте класс Employee со статическим count, равным 0, и статическим методом click(), который увеличивает count. Вызовите click() три раза в разных местах файла и выведите Employee.count.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить