2-modul · 3-dars: Inheritance · Access · Relationships

Daraja: O'rta

Inheritance · Access · Relationships. OOP bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Inheritance · Access · Relationships tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Bir class (subclass) boshqasidan (superclass) field va methodlarni meros olishi.

Kodni qayta ishlatish (reuse) va Is-A munosabatini ifodalash uchun.

## Intervyuga tayyorgarlik ### Inheritance nima? Bir class (subclass) boshqasidan (superclass) field va methodlarni meros olishi.

### Inheritance nima uchun kerak? Kodni qayta ishlatish (reuse) va Is-A munosabatini ifodalash uchun.

### Inheritance-ning qanaqa turlari bor? Misollar. Single, Multilevel va Hierarchical (class lar uchun). Multiple inheritance faqat interface orqali. Misol: `Dog extends Animal`.

### Java-da bir nechta Inheritance-dan foydalansa bo'ladimi? Class lar bilan yo'q (diamond problem sababli), lekin interface lar orqali mumkin.

### Superclass va subclass qanday classlar? Superclass (parent) — meros beruvchi; subclass (child) — meros oluvchi class.

### Subclass superclassning nimalarini meros qilib oladi? public/protected (va bir package da default) field va methodlarni. `private` a'zolar va constructorlar meros olinmaydi (lekin `super()` bilan chaqiriladi).

### Cosmic class deb qaysi classga aytiladi? Barcha class larning ota-onasi — `java.lang.Object`.

### Cosmic class-ning qanday methodlari bor? `toString()`, `equals()`, `hashCode()`, `getClass()`, `clone()`, `finalize()`, `wait()`, `notify()`, `notifyAll()`.

### Access modifierlar nima uchun kerak? Class a'zolariga qayerdan kirish mumkinligini boshqarish — inkapsulyatsiyani ta'minlash uchun.

### Access modifierning qanday turlari bor? Ta'rif bering. `private` (faqat class ichida), default/package-private (bir package da), `protected` (package + subclasslar), `public` (hamma joyda).

### Private constructor yarata olamizmi? Vazifasi? Ha. Vazifasi — obyekt yaratishni cheklash: Singleton, utility class yoki Factory pattern uchun.

### Access modifierlarning qaysilarini class bilan ishlata olamiz? Top-level class faqat `public` yoki default bo'ladi. Inner/nested class larda esa hammasi (private, protected ham) mumkin.

### SuperClass-ning protected constructoridan foydalana olamizmi? Ha, subclass o'z constructoridan `super()` orqali uni chaqira oladi.

### Private modifier nimalarda ishlatiladi va qayerlarga ruxsat beradi? Field, method, constructor va inner class da ishlatiladi. Faqat o'sha class ichidagina kirishga ruxsat beradi.

### Classlar orasida qanday relationshiplar bor? Is-A (inheritance), Has-A (association: composition/aggregation) va Uses-A (dependency).

### Uses-A munosabat turi qayerda ishlatiladi? Bir class boshqasini vaqtincha ishlatganda — masalan method parametri yoki local o'zgaruvchi sifatida.

### Has-A munosabat turi qayerda ishlatiladi? Bir class boshqa classni field sifatida saqlaganda (masalan `Car` da `Engine`).

### Is-A munosabat turi qayerda ishlatiladi? Inheritance yoki interface implement qilinganda (`Dog is a Animal`).

### Is-A munosabatga erishish uchun qanday keywordlar ishlatiladi? `extends` (class/interface merosi) va `implements` (interface).

### Has-A munosabatning qanday turlari bor? Composition (kuchli, egalik bilan) va Aggregation (bo'sh bog'lanish).

### Composition, Aggregation va Association farqlari? Association — umumiy bog'lanish. Aggregation — «has-a», qismlar butунdan mustaqil yashaydi. Composition — qism butunsiz yashamaydi (kuchli egalik).

## 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

class Animal { String sound() { return "?"; } }
class Cat extends Animal {
  @Override String sound() { return "miyov"; }
}
// Animal animal = new Cat();

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-02, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)