2-modul · 8-dars: Non-Access Modifiers · Record · Sealed · Blocks

Daraja: O'rta

Non-Access Modifiers · Record · Sealed · Blocks. OOP bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Non-Access Modifiers · Record · Sealed · Blocks tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya `static`, `final`, `abstract`, `synchronized`, `transient`, `volatile`, `native`, `strictfp`.

static — class-level a'zo; final — o'zgarmas/meros bermas; abstract — to'liqsiz; synchronized — thread sinxronizatsiyasi; transient — serializatsiyada tashlab ketiladi; volatile — thread lararo ko'rinish; native — native kod; strictfp — float aniqligi.

## Intervyuga tayyorgarlik ### Non-access modifiers turlari? `static`, `final`, `abstract`, `synchronized`, `transient`, `volatile`, `native`, `strictfp`.

### Har bir non-access modifier qayerlarda ishlatiladi? static — class-level a'zo; final — o'zgarmas/meros bermas; abstract — to'liqsiz; synchronized — thread sinxronizatsiyasi; transient — serializatsiyada tashlab ketiladi; volatile — thread lararo ko'rinish; native — native kod; strictfp — float aniqligi.

### Record classlar qanday classlar? Faqat ma'lumot saqlash uchun mo'ljallangan immutable, qisqa class lar. Field, constructor, getter, `equals`/`hashCode`/`toString` avtomatik yaratiladi. Java 16 dan.

### Record Class-ning qanday constructorlari bor? Canonical (to'liq), Compact (qisqartirilgan, validatsiya uchun) va custom constructor.

### Sealed Classlar qanday classlar? Qaysi class lar undan meros olishini `permits` bilan cheklaydigan class lar. Java 17 dan.

### Sealed Classlar nima uchun kerak? Meros ierarxiyasini nazorat qilish, xavfsizlik va aniq domen modellash uchun.

### Instance Initializer Block nima uchun kerak? Har bir obyekt yaratilishida field larni initsializatsiya qilish uchun (constructorlar uchun umumiy kod).

### Instance Initializer Block qachon ishlaydi? Har bir obyekt yaratilganda, constructor tanasidan oldin.

### Static block qachon ishlaydi? Class birinchi marta yuklanganda, faqat bir marta.

### Static va Instance Initializer block farqlari? Static block class yuklanganda 1 marta ishlaydi; instance block esa har bir obyekt yaratilishida ishlaydi.

### Variable Shadowing nima? Ichki scope (method yoki parametr) o'zgaruvchisi bir xil nomdagi tashqi (field) o'zgaruvchini «soyalab», uni yashirishi.

### Variable hiding nima? Subclass dagi static a'zo yoki field superclass-nikini yashirishi (reference turiga qarab hal bo'ladi).

## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/2-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/classes-objects/) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

sealed interface Result permits Success, Failure {}
record Success(String value) implements Result {}
record Failure(String message) implements Result {}
// Java 17; record fieldlari final, ichidagi mutable obyekt esa avtomatik immutable emas.

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-02

Interaktiv ko'rinish (viktorina, izohlar, tarix)