O’zgarmaslar (final) — bir marta belgilangach, qayta o’zgartirib bo’lmaydigan qiymatlar. Ba’zi qiymatlar tabiatan doimiy: pi soni, hafta kunlari soni, soliq stavkasi. Ularni o’zgarmas qilish tasodifan o’zgartirib yuborishdan himoya qiladi va kod maqsadini aniqroq ifodalaydi.
final — o’zgaruvchini o’zgarmas qiladigan kalit so’z.
finalbilan e’lon qilingan qiymatni bir marta berilgandan so’ng qayta o’zlashtirib bo’lmaydi.
final kalit so’zi
O’zgarmas e’lon qilish uchun tur oldiga final qo’yiladi. Bunday qiymatni o’zgartirishga urinish kompilyatsiya xatosiga olib keladi:
public class Main {
public static void main(String[] args) {
final double PI = 3.14159;
final int KUNLAR = 7;
System.out.println("Pi: " + PI);
System.out.println("Haftada " + KUNLAR + " kun");
}
}
Pi: 3.14159
Haftada 7 kun
Agar keyin PI = 3; deb yozsangiz, kompilyator “cannot assign a value to final variable” degan xato beradi. Aynan shu himoya final ning asosiy foydasidir.
Nega o’zgarmas ishlatish kerak?
final ning ikki muhim afzalligi bor. Birinchidan, u xatoning oldini oladi — muhim qiymat tasodifan o’zgarmaydi. Ikkinchidan, u kodni o’qiladigan qiladi:
public class Main {
public static void main(String[] args) {
final double SOLIQ = 0.12;
double narx = 50000;
double soliqli = narx + narx * SOLIQ;
System.out.println("Soliqli narx: " + soliqli);
}
}
Soliqli narx: 56000.0
Agar soliq stavkasi o’zgarsa, uni faqat bitta joyda tuzatasiz — bu katta loyihalarda bebaho.
Nomlash konvensiyasi
Java’da o’zgarmaslar odatda UPPER_CASE bilan yoziladi, so’zlar pastki chiziq bilan ajratiladi. Bu ularni oddiy o’zgaruvchilardan darrov ajratib turadi:
| Turi | Nomlash uslubi | Misol |
|---|---|---|
| Oddiy o’zgaruvchi | camelCase | foydalanuvchiYoshi |
O’zgarmas (final) |
UPPER_CASE | MAX_QIYMAT |
Amalda:
public class Main {
public static void main(String[] args) {
final int MAX_QIYMAT = 100;
final String KOMPANIYA = "UzbekDevs";
System.out.println(KOMPANIYA + ", limit: " + MAX_QIYMAT);
}
}
UzbekDevs, limit: 100
final va referens turlar
Nozik nuqta: final referens turga qo’llansa, o’zgaruvchi boshqa obyektga ishora qila olmaydi, ammo obyektning ichini o’zgartirish mumkin. Bu, masalan, final massivga qo’llanganda muhim: massivni yangisiga almashtirib bo’lmaydi, lekin uning elementlarini o’zgartirsa bo’ladi.
Xulosa
Bu bo’limda final bilan o’zgarmas qiymat e’lon qilish, uning xato oldini olish va o’qiluvchanlik afzalliklari, UPPER_CASE nomlash konvensiyasi va referens turlar bilan noziklik’ni ko’rib chiqdik. Doimiy qiymat uchun doim final ishlating. Keyingi darsda operatorlar — qiymatlar ustidagi amallarga o’tamiz.