final (Java)

В мові програмування Java, службове слово final використовується в кількох варіантах для визначення чогось, що пізніше не може бути зміненим. 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;     }      [...] } 

порожній final[ред. | ред. код]

Java дозволяє використання blank finals. Тобто полів класів, які визначені як final, але не ініціалізовані. У будь-якому випадку така змінна повинна бути ініціалізована перед тим, як з нею будуть працювати.

final методи[ред. | ред. код]

Є дві причини використання final для методів. Перша — ви хочете заборонити перевизначення (англ. override) вашого методу у класах-нащадках (перевантаження (англ. overload) дозволене). А друга причина є чіткість, визначеність та продуктивність для роботи компілятора. Для попередніх версій Java друга причина мала значення. Але починаючи з Java SE5/6 final використовується лише, коли ви чітко хочете зазначити, що хочете заборонити перевизначення вашого методу.

Приклад:

public class MyClass {     public final void myFinalMethod() {...} } 

final класи[ред. | ред. код]

Якщо ви визначаєте свій клас як final, то це означає, що ви не хочете щоб хтось породжував свої класи від вашого.

В Java standard library classes наприклад java.lang.System та java.lang.String.

Приклад:

public final class MyFinalClass {} 

Посилання[ред. | ред. код]