Різниця між статичним та фінальним на Java

Автор: Laura McKinney
Дата Створення: 2 Квітень 2021
Дата Оновлення: 13 Травень 2024
Anonim
Співбесіда Джуніора в ЕРАМ Java Laboratory
Відеоролик: Співбесіда Джуніора в ЕРАМ Java Laboratory

Зміст


Статичне та остаточне - це ключові слова, які використовуються в Java. До статичного члена можна отримати доступ до створення об’єкта класу. Фінал має різний ефект, коли застосовується до класу, методів та змінних. Основна відмінність статичного та кінцевого ключового слова полягає в тому статичний Ключове слово використовується для визначення члена класу, який може бути використаний незалежно від будь-якого об'єкта цього класу. Фінал Ключове слово використовується для оголошення, постійної змінної, методу, який неможливо перекрити, і класу, який не може бути успадкований.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняСтатичнийФінал
ЗастосовуєтьсяСтатичне ключове слово застосовно до вкладеного статичного класу, змінних, методів та блоків.Заключне ключове слово застосовно до класу, методів та змінних.
ІніціалізаціяНе обов’язково ініціалізувати статичну змінну на момент її декларування.Обов'язково ініціалізувати остаточну змінну на момент її декларування.
МодифікаціяСтатичну змінну можна реініціалізувати.Кінцеву змінну неможливо повторно реалізувати.
МетодиСтатичні методи можуть отримати доступ лише до статичних членів класу і можуть бути викликані лише іншими статичними методами.Остаточні методи не можуть бути успадковані.
КласОб'єкт статичних класів неможливо створити, і він містить лише статичні члени.Заключний клас не може бути успадкований жодним класом.
БлокСтатичний блок використовується для ініціалізації статичних змінних.Кінцеве ключове слово не підтримує такого блоку.


Визначення статичного

Статичний - це ключове слово, застосовне до класів, змінних, методів та блоків. Члени класу, клас та блоки можуть бути статичними за допомогою ключового слова "статичний" перед іменем членів класу, класу та блоків відповідно. Коли член класу оголошується статичним, він стає глобальним для всіх інших членів класу. Статичний член класу не займає пам'ять на основі екземпляра, тобто всі об'єкти мають однакову копію статичного члена. Статичний член може використовуватися незалежно від будь-якого об'єкта цього класу. Ви можете отримати доступ до статичного члена класу до створення його об'єкта. Найкращий приклад статичного члена - це метод main (), він оголошується статичним, щоб його можна було викликати перед тим, як існує будь-який об'єкт. Загальна форма для доступу до статичного члена класу:

class_name.static_member // доступ до статичного члена класу

Наведений вище код class_name - це ім'я класу, в якому визначено static_member. Статичний член може бути статичною змінною або статичним методом


Статичні змінні:

  • Статична змінна діє як глобальна змінна для всіх інших членів класу даних.
  • До статичної змінної можна отримати доступ до будь-якого об'єкта класу.
  • До статичної змінної можна отримати доступ з назвою класу, в якому вона визначена, а потім оператором dot (.).

Статичні методи:

  • Статичний метод може викликати лише інші статичні методи.
  • Статичний метод може отримати доступ лише до статичних даних.
  • Статичний метод не можна називати "цим" або "супер" ні в яких умовах.
  • До статичного методу можна отримати доступ з назвою класу, в якому його визначено, а потім оператором dot (.).

Статичний клас:

  • У Java є концепція вкладеного статичного класу. Зовнішній клас не може бути статичним, тоді як самий внутрішній клас може бути статичним.
  • Статичний вкладений клас не може отримати доступ до нестатичного члена зовнішнього класу.
  • Він може отримати доступ лише до статичних членів зовнішнього класу.

Статичний блок:

Статичний блок виконується лише один раз при завантаженні класу. Використовується для ініціалізації статичних змінних класу.

C ++:

У C ++ у нас є поняття статичних змінних, а також статичних функцій, тоді як C ++ не підтримують статичний клас.

C #:

C # підтримує також статичний клас, статичні змінні та статичний клас.

Java:

Java підтримує статичний вкладений клас, статичні змінні, статичні методи.

Визначення фіналу

Final - ключове слово, застосовне до класу, змінної та методів. Клас, змінна та метод оголошуються як остаточні, використовуючи ключове слово "final", перед яким їх ім'я. Як тільки змінна оголошується як остаточна; вона не може бути додатково змінена в програмі. Кінцева змінна повинна бути ініціалізована під час оголошення. Кінцеві змінні не займають пам’ять на основі примірника. Усі об'єкти класів мають однакову копію остаточної змінної.

Метод, оголошений як остаточний, не може бути замінений підкласом того класу, в якому оголошено остаточний метод. Коли клас оголошено остаточним, інший клас не може успадкувати цей остаточний клас. C ++, C # не підтримують цю концепцію, якщо кінцеве ключове слово. Java підтримує концепцію остаточного ключового слова та в Java; клас, змінна та метод можуть бути оголошені як остаточні.

  1. Статичне ключове слово застосовно до вкладеного статичного класу, змінних, методів та блоків. З іншого боку, остаточне ключове слово застосовно до методів та змінних класів.
  2. Статична змінна може бути ініціалізована в будь-який час, тоді як остаточна змінна повинна бути ініціалізована під час оголошення.
  3. Статична змінна може бути реініціалізована, тоді як, коли ініціалізована остаточна змінна, ніколи не може бути повторно реалізована.
  4. Статичний метод може отримати доступ до статичного члена класу і може бути викликаний лише іншими статичними методами. З іншого боку, остаточний метод ніколи не може бути успадкований жодним класом.
  5. Статичний блок використовується для ініціалізації статичних змінних, тоді як остаточне ключове слово не підтримує жодного блоку.

Висновок:

Статичні та кінцеві ключові слова вирішують різну мету, коли застосовуються до класу, змінної та методу.