Step 6 (S-11071)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/560/step/6

Step 6 (S-11071) 1.png

[00:00 - 00:17] еще 1 применение ключевого слова статик это статические поля класса поле класса объявлены с ключевым словом встать по сути является глобальной переменной объявленной 3 класса и на которые распространяется действие модификаторов доступа


[00:17 - 00:36] модификатор доступа это единственное что отличает статическое поле класса вот глобальной переменной в остальном статические поля класса хранятся в той же области глобальные переменные некоторой области глобальных данных статические поля классов создаются при запуске программы происходит их нейтрализация и удаляются


[00:36 - 00:53] при выходе из программы давайте посмотрим следующий пример пусть у нас есть некоторый класс юзер соответствующий пользователю например операционной системы мы хотели поддерживать переменную которая


Step 6 (S-11071) 2.png

[00:53 - 01:08] считает количество пользователей существующих систем до 0 то есть мы хотели посчитать количество экземпляров класса вечер в доме как такая задача обычно решается создается некая глобальная переменная


[01:08 - 01:26] и эта переменная инкрементируется в каждом из конструкторов и документируются в деструкторе таким образом автоматически поддерживал количество объектов телевизор если мы сделаем это просто при помощи глобальной переменной то такой примерно можно будет изменять и из любого другого года


[01:26 - 01:42] и потенциально до начала будет недостоверным то есть он какой то может быть то подкрутить для того чтобы защитить эту переменную от изменения можно объявить ее как статическое поле классом и защитить при помощи модификатора


[01:42 - 02:00] проект в этом случае ее можно будет изменять только внутри кода класса юзер то есть только где то здесь таким образом если мы контролируем код класса лидеры то другой примерно внятных может как и обычно глобальные переменные


[02:00 - 02:16] статические классы требуют определения определение нужно описывать снаружи атласа там есть несколько исключений но в большинстве случаев действительно надо писать снаружи


[02:16 - 02:32] в 1 из файлов с кодом то есть в 1 из трансляций в этой теме трансляции что эти страны в которой будет написано будет выделено место под хранение данных глобальной переменной для хранения только были перемены которые соответствуют


[02:32 - 02:51] в статическом поле класс определение состоит из типа переменной из ее имени данном случае иметь в виду полное имя этой переменных и интегрируются значит то есть непосредственно в коде класса переменной детализировать нельзя надо инициализировать


[02:51 - 03:07] при определении определяют их в 1 из файла с кодом при этом если мы определим это статическое поле класс в нескольких файлах с кодом то есть в нескольких дней сокращать то вам линковки произойдет ошибка так он будет


[03:07 - 03:24] несколько определений 1 и той же глобальной переменной которая соответствует статическому полю класс а ты че статических полей класса от обычных полей класса заключается в том что обычные поля вас они по сути являются полями объекта то есть они хранятся объектов


[03:24 - 03:39] а статическое поле класса хранится в области глобальных переменных то есть это глобальная переменная уровне поэтому для доступа к статическим класса не нужен объект это надо понимать


[03:39 - 03:58] так в статистических класса хранится не в объекте а то мы можем к таким полям обращаться напрямую ну например если бы мы не указали внутри которой правят и данное поле было бы к публичным то мы могли бы обращаться


[03:58 - 04:06] к данной переменной просто по полному ее имени указывает имя класса в котором она находится