Всем привет! Я часто с тем, что люди не понимают, что такое static, когда его стоит применять, не понимают разницы между статическим свойством и методом. Когда начал копать чуть глубже и искать подробные ответы, оказалось, что и сам не до конца понимаю. Поэтому решил написать подробный разбор, включить некоторые сторонние темы, чтобы вы знали, когда что лучше использовать. Я уже писал про статические методы, но теперь подробно про всю статику. Давайте сначала разберёмся, что такое статические члены (static members) класса, и чем они отличаются от нестатических (далее — экземплярных)...
Сегодня я решила вспомнить про static в Java. Что это вообще такое? Использование ключевого слова static можно сравнить с игрушкой для котиков. Независимо от того, кто из котиков с ней играет, игрушка остаётся в комнате и доступна всем котам. Каждый котик может подойти и начать играть с ней, но игрушка не становится его личной собственностью, она остаётся общей для всех. Так и в Java, переменная или метод, объявленные как static, принадлежат всему классу, а не какому-то одному экземпляру этого класса...