final (Java)
В мові програмування Java, службове слово final
використовується в кількох варіантах для визначення чогось, що пізніше не може бути зміненим. final
може використовуватися при роботі з даними, методами та класами.
Багато мов програмування мають можливість повідомити компілятор, що певна змінна, або точніше частина інформації є «константою». В Java, final змінна може бути визначена (ініціалізована) лише один раз і більше не може змінюватися.
Приклад:
public class Sphere { public static final double PI = 3.141592653589793; // this might as well be a constant public final double radius; public final double xpos; public final double ypos; public final double zpos; Sphere(double x, double y, double z, double r) { radius = r; xpos = x; ypos = y; zpos = z; } [...] }
Java дозволяє використання blank finals. Тобто полів класів, які визначені як final
, але не ініціалізовані. У будь-якому випадку така змінна повинна бути ініціалізована перед тим, як з нею будуть працювати.
Є дві причини використання final
для методів. Перша — ви хочете заборонити перевизначення (англ. override) вашого методу у класах-нащадках (перевантаження (англ. overload) дозволене). А друга причина є чіткість, визначеність та продуктивність для роботи компілятора. Для попередніх версій Java друга причина мала значення. Але починаючи з Java SE5/6 final
використовується лише, коли ви чітко хочете зазначити, що хочете заборонити перевизначення вашого методу.
Приклад:
public class MyClass { public final void myFinalMethod() {...} }
Якщо ви визначаєте свій клас як final
, то це означає, що ви не хочете щоб хтось породжував свої класи від вашого.
В Java standard library classes наприклад java.lang.System та java.lang.String.
Приклад:
public final class MyFinalClass {…}
- Discussion about a controversy on final keyword [Архівовано 3 серпня 2008 у Wayback Machine.](англ.)
![]() | Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |