В мові програмування 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 {…}
Посилання
- Discussion about a controversy on final keyword [ 3 серпня 2008 у Wayback Machine.](англ.)
Це незавершена стаття про мови програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
V movi programuvannya Java b final b vikoristovuyetsya v kilkoh variantah dlya viznachennya chogos sho piznishe ne mozhe buti zminenim b final b mozhe vikoristovuvatisya pri roboti z danimi metodami ta klasami final ta zminniBagato mov programuvannya mayut mozhlivist povidomiti kompilyator sho pevna zminna abo tochnishe chastina informaciyi ye konstantoyu V Java final zminna mozhe buti viznachena inicializovana lishe odin raz i bilshe ne mozhe zminyuvatisya Priklad 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 porozhnij final Java dozvolyaye vikoristannya blank finals Tobto poliv klasiv yaki viznacheni yak b final b ale ne inicializovani U bud yakomu vipadku taka zminna povinna buti inicializovana pered tim yak z neyu budut pracyuvati final metodiYe dvi prichini vikoristannya b final b dlya metodiv Persha vi hochete zaboroniti pereviznachennya angl override vashogo metodu u klasah nashadkah perevantazhennya angl overload dozvolene A druga prichina ye chitkist viznachenist ta produktivnist dlya roboti kompilyatora Dlya poperednih versij Java druga prichina mala znachennya Ale pochinayuchi z Java SE5 6 b final b vikoristovuyetsya lishe koli vi chitko hochete zaznachiti sho hochete zaboroniti pereviznachennya vashogo metodu Priklad public class MyClass public final void myFinalMethod final klasiYaksho vi viznachayete svij klas yak b final b to ce oznachaye sho vi ne hochete shob htos porodzhuvav svoyi klasi vid vashogo V Java standard library classes napriklad java lang System ta java lang String Priklad public final class MyFinalClass PosilannyaDiscussion about a controversy on final keyword 3 serpnya 2008 u Wayback Machine angl Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi