2-modul · 1-dars: Paradigmalar · OOP · Constructor
Daraja: O'rta
Paradigmalar · OOP · Constructor. OOP bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Paradigmalar · OOP · Constructor tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Dastur yozishning uslubi/yondashuvi. Asosiylari: Procedural, Object-Oriented (OOP), Functional va Reactive programming.
Ketma-ket bajariladigan funksiya/proseduralarga asoslangan uslub (masalan C tili).
## Intervyuga tayyorgarlik ### Programming paradigms nima va ular qaysilar? Dastur yozishning uslubi/yondashuvi. Asosiylari: Procedural, Object-Oriented (OOP), Functional va Reactive programming.
### Procedural Programming nima? Ketma-ket bajariladigan funksiya/proseduralarga asoslangan uslub (masalan C tili).
### OOP nima? Dasturni obyektlar (ma'lumot + xatti-harakat) atrofida quruvchi paradigma.
### Functional Programming nima? Hisoblashni sof funksiyalar (pure functions) va o'zgarmas ma'lumotlar orqali ifodalovchi uslub.
### Reactive Programming nima? Ma'lumot oqimi (streams) va o'zgarishlarga asinxron reaksiyaga asoslangan uslub.
### Procedural va OOP farqi nima? Procedural da funksiyalar markazda, ma'lumot ochiq. OOP da ma'lumot va methodlar obyektga birlashtiriladi, inkapsulyatsiya, meros va polimorfizm bor.
### OOP kontseptsiyalari qaysilar? Class, Object, Method, Field va 4 ustun: Encapsulation, Inheritance, Polymorphism, Abstraction.
### OOP ning asosiy ustunlari qaysilar? 4 ta: Encapsulation (inkapsulyatsiya), Inheritance (meros), Polymorphism (polimorfizm), Abstraction (abstraksiya).
### Class deb nimaga aytiladi? Obyekt yaratish uchun shablon/andoza — field va methodlar to'plami.
### Object deb nimaga aytiladi? Class dan yaratilgan real nusxa (instance).
### Method deb nimaga aytiladi? Class ichidagi, xatti-harakatni (funksiyani) ifodalovchi blok.
### Field deb nimaga aytiladi? Class ichidagi, holatni (ma'lumot/o'zgaruvchi) ifodalovchi a'zo.
### Constructor nima uchun kerak? Obyekt yaratilganda uning field larini initsializatsiya qilish uchun.
### Constructor-ning qanaqa turlari bor? Default, No-arg, Parametrized, Copy, Chaining va Compact (record) constructor.
### Biz constructor yaratsak ham class ichida default constructor bo'ladimi? Yo'q. O'zimiz birorta constructor yozsak, kompilyator default constructor qo'shmaydi.
### Constructor qachon chaqiriladi? `new` operatori bilan obyekt yaratilgan paytda.
### Bitta class ichida bir nechta constructor bo'lishi mumkinmi? Ha — constructor overloading orqali (turli parametrlar bilan).
### Default Constructor qanaqa constructor? Parametrsiz, kompilyator avtomatik qo'shadigan (agar boshqa constructor yozilmagan bo'lsa) constructor.
### No-Arg Constructor qanaqa constructor? Parametri yo'q, lekin dasturchi o'zi yozgan constructor.
### Parametrized Constructor qanaqa constructor? Bir yoki bir nechta parametr qabul qiluvchi constructor.
### Copy Constructor qanaqa constructor? Shu turdagi boshqa obyektni qabul qilib, uning nusxasini yaratuvchi constructor.
### Chaining Constructor qanaqa constructor? Bir constructor boshqasini `this(...)` yoki superclass-nikini `super(...)` orqali chaqirishi.
### Compact Constructor qanaqa constructor? `record` class dagi qisqartirilgan constructor — parametrlar avtomatik olinadi, faqat validatsiya yoziladi.
## 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 Student {
private final String name;
Student(String name) { this.name = name; }
String name() { return name; }
}
Keng tarqalgan xatolar
- Class va obyektni chalkashtirish: class - qolip, obyekt - `new` bilan yaratilgan nusxa.
- Constructor ga qaytish turi yozib qo'yish - u holda oddiy metodga aylanadi va constructor chaqirilmaydi.
Mashqlar
- Bitta class ga uchta har xil constructor yozib, har biri bilan obyekt yarating.
- Bir xil masalani protsedura uslubida va OOP uslubida yozib, farqini tushuntiring.
Teglar: modul-02, pdp, nazariya