16, Тра 2024
Чим відрізняються static метод класу від звичайного методу Java класу?

Чим відрізняються статичні методи від звичайних? Звичайний метод має прив'язку до об'єкта — екземпляру класу, а статичний метод такої прив'язки не має.. Звичайний метод може звертатися до змінних у своєму екземплярі класу, статичний — ні: він просто не має жодного екземпляра класу, пов'язаного з ним.

Статичні методи не можна перевизначати. Тим не менш, у класі-спадкоємцю зазвичай можна перевизначати існуючі методи. Це означає, що можна створити метод з такою ж назвою, тільки замінити його "начинки". Так ось, статичний метод не можна перевизначити.

Єдина різниця між цими двома програмами лише у додаванні ключового слова static до змінної. Оскільки змінна s_value оголошено статичною (за допомогою ключового слова static), то вона створюється та ініціалізується лише один раз. Крім того, виходячи з області видимості, вона не знищується.

Нестатичний клас може містити статичні методи, поля, властивості чи події. Статичний член викликається для класу навіть у тому випадку, якщо не створено екземпляр класу. Доступ до статичному члени завжди виконується на ім'я класу, а чи не екземпляра.