У математиці та науці константа - це термін, який позначає певне значення, таке як 'π', що є практичною назвою для числа 3.14159. У Java є свої константи. Це змінні, які під (а) не належать до жодного об'єкта, а підпункт (b) не змінює свого значення після їх встановлення. Статичне слово в оголошенні змінної показує, що змінна не належить жодному об'єкту. Існує аналогічне ключове слово, яке говорить про те, що значення змінної буде встановлено лише один раз і не зміниться. Це ключове слово остаточне. Це ключове слово не обмежується статичними змінними, але може використовуватися зі змінними екземпляра, локальними змінними та навіть зі змінними, які є методами параметрів. Декларуючи змінну як остаточну, ви показуєте всім, що змінна протягом існування матиме однакове значення. Що ще важливіше, компілятор виявить кожну спробу змінити значення так оголошеної змінної та повідомить про це як про помилку. Що стосується термінології Java, змінна, яка оголошується статичною і остаточною, називається константою.
Остаточний модифікатор можна використовувати в декількох місцях мовою програмування Java. Тут ми розглянемо його найбільш поширене використання. Остаточний модифікатор може бути застосований до оголошення локальної змінної, аргументу функції та нестатичних чи статичних змінних членів. У цьому контексті модифікатор змінної перетворюється на константу. Перекладач мови перекладу перевірить, чи якийсь код намагається змінити значення, і такі спроби будуть позначені як помилка. Ось приклад.
кінцеве значення int = 17;
Статичні змінні члена з цим модифікатором використовуються як глобальні константи; наприклад, у змінній PI java.lang.Math зазначено точно
державний статичний кінцевий подвійний PI = 3,14159265358979323846;
Ми можемо застосувати остаточний модифікатор до оголошення функції. Функцію, позначену фіналом, вже не можна перекрити - це її остаточна реалізація. Абстрактні методи не можна оголосити остаточними - той факт, що вони є абстрактними, означає, що їм не вистачає реалізації; це, безумовно, не може бути їх кінцевим станом. Ось приклад.
public final int значенняLife ()
повернення 42;
Ми можемо застосувати остаточний модифікатор до декларації класу. Клас, який позначений фіналом, вже не може успадковувати - це його остаточна реалізація. Очевидно, що абстрактний клас не може бути остаточним одночасно. Ось приклад
відкритий заключний клас закрито
//…
Один з прикладів кінцевих класів - клас java.lang.String - він кінцевий, тому ніхто не міг успадкувати його і таким чином отримати доступ до змінних його членів.
Статичні змінні не належать до конкретного примірника класу. Статичні змінні належать до самого класу, і в пам'яті є лише одне місце розташування, незалежно від кількості копій цього класу, що створюються в пам'яті. Нестатичні змінні належать до зразків класу - кожен екземпляр класу має свою копію таких змінних. Статичні змінні належать до класу - клас у пам'яті зберігає значення таких змінних; Тому всі зразкові класи бачать однаковий вміст, тому ми можемо вважати статичні змінні для спільного використання всіх розмірів класів. Оновлення змінної значення нове значення буде автоматично видимим для всіх примірників цього класу. Статичний фільтр може бути застосований до будь-якого елемента, юридично оголошеного в класі. У випадку змінних членства, наслідком цього є те, що такі змінні учасники зберігатимуться в пам'яті лише в одному місці. Що станеться, якщо це метод? Оголошуючи метод статичним, повідомлення те саме: відповідний метод належить не до класів класів, а до самого класу. Отже, статичні методи не отримають прихованого посилання на об'єкт, над яким вони викликаються при виклику; у статичних методах відліку це недоступно. Дійсно, виклик статичних методів через об'єкт однаково заплутано, як і доступ до змінних статичних членів, посилаючись на це посилання: в обох випадках краще просто написати ім’я класу, точку та ім'я виклику методу.
Статична позначає змінну, яка є загальною для всіх об'єктів, які створюють даний клас, а остаточне визначає константу.
Статичний - це метод, однаковий для кожного об'єкта даного класу - його також називають членом класу, наприклад такий основний метод. Остаточний метод не може бути оброблений у спадковому класі.
Фінал не можна розширювати, тобто не дозволяє підкласи. Статичний не стосується класу.
Простіше кажучи, підсумкове позначало, що значення не можна змінювати (замінювати). Статичне значення встановлюється за замовчуванням, але може бути реанімізовано.