Всем привет. На одном из код-ревью я столкнулся с мыслью, что многие, а чего скрывать и я сам, не то чтобы хорошо понимаем когда нужно использовать ключевое слова static. В данной статье я хотел бы поделиться своими знаниями и информацией по поводу ключевого слова static.
Государства-члены
Поскольку использование глобальных переменных — это зло , то ключевое слово static в этом контексте используется не очень часто. Мы поговорим о статических переменных-членах на этом уроке, а о статических методах на следующем. Прежде чем мы перейдем к ключевому слову static с переменными-членами класса, давайте сначала рассмотрим следующий класс:. При создании объекта класса, каждый объект получает свою собственную копию всех переменных-членов класса. Это разные значения, следовательно, результат выполнения программы:.
Члены класса со спецификацией private являются частными , и не могут быть использованы как извне класса, так и из наследника. Это как бы "личные" атрибуты и методы, которые класс "забирает с собой в могилу". Если необходимо защитить член класса от доступа извне, но позволить использовать его производным классам, используется другое ключевое слово — protected защищенный.
На данный момент мы уже знаем достаточно много ключевых слов, в том числе и такие как private , public , internal и так далее, позволяющие указать уровень доступа членов класса. И, несмотря на то, что с ключевым словом static мы уже встречались не раз, однако, вся его мощь чувствуется именно при работе с классами в языке C. Ключевое слово static может использоваться в различных контекстах, однако сегодня речь пойдет о его использовании именно в классах C. В русской литературе по программированию на языке C можно встретить такие определения, как «статичный», «статический» и так далее. В любом случае, это означает, что какой-либо член класса свойство, метод определен с атрибутом static.