1-modul · 5-dars: Function & Method
Daraja: Boshlang'ich
Function & Method. Java Core bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Function & Method tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Muayyan vazifani bajaruvchi, qayta ishlatiladigan kod bloki.
Method — class ichidagi function (obyektga bog'langan). Java-da har bir function class ichida bo'lgani uchun ular method deb ataladi.
## Intervyuga tayyorgarlik ### Function nima? Muayyan vazifani bajaruvchi, qayta ishlatiladigan kod bloki.
### Function va Method o'rtasidagi farq nima? Method — class ichidagi function (obyektga bog'langan). Java-da har bir function class ichida bo'lgani uchun ular method deb ataladi.
### Method Definition nima? Method-ning to'liq ko'rinishi: header (declaration) + body.
### Method Declaration (header) nima? Method imzosi qismi: access modifier, return type, nom va parametrlar. Masalan `public int sum(int a, int b)`.
### Method Signature nima? Method nomi + parametrlar ro'yxati (turi va tartibi). Return type signature ga kirmaydi.
### Method body nima? `{ }` ichidagi, method chaqirilganda bajariladigan kod.
### Stack nima? Method chaqiruvlari va local o'zgaruvchilar saqlanadigan LIFO xotira.
### Stack Frame nima? Har bir method chaqiruvi uchun stack da ajratiladigan blok (parametrlar, local o'zgaruvchilar).
### Recursion nima? Method-ning o'z-o'zini chaqirishi.
### Method qachon recursive method deb ataladi? U o'z tanasida bevosita yoki bilvosita o'zini chaqirsa.
### Group of recursions? Direct recursion (to'g'ridan-to'g'ri o'zini chaqirish) va Indirect/mutual recursion (bir-birini chaqiruvchi methodlar).
### Type of recursions? Tail recursion (rekursiv chaqiruv oxirgi amal) va Non-tail/head recursion; shuningdek linear va tree recursion.
## 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/1-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/) [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
// Klass ichida e'lon qilinadi:
static int max(int a, int b) { return a > b ? a : b; }
// main ichida: System.out.println(max(3, 8));
Keng tarqalgan xatolar
- Metod signature ga qaytish turini ham kiritish: faqat return type bilan farq qiluvchi ikki metod bo'lmaydi.
- Rekursiyada to'xtash shartini (base case) yozmaslik - StackOverflowError chiqadi.
Mashqlar
- Faktorialni rekursiv va tsikl bilan yozib, ikkalasini katta son uchun sinang.
- Bir nomli, lekin har xil parametrli uchta metod yozing va qaysi biri chaqirilishini oldindan ayting.
Teglar: modul-01, nazariya, pdp