OOP tamoyillari: inkapsulyatsiya, meros, polimorfizm
Daraja: O'rta
Inkapsulyatsiya — maydonlarni `private` qilib, faqat metodlar orqali ochish. Meros (`extends`) — mavjud klass xatti-harakatini qayta ishlatish. Polimorfizm — ota tur orqali bola obyektga murojaat qilib, ish vaqtida to'g'ri metod chaqirilishi. Abstraksiya — keraksiz tafsilotni yashirish.
Tushuntirish
Inkapsulyatsiya — maydonlarni `private` qilib, faqat metodlar orqali ochish. Meros (`extends`) — mavjud klass xatti-harakatini qayta ishlatish. Polimorfizm — ota tur orqali bola obyektga murojaat qilib, ish vaqtida to'g'ri metod chaqirilishi. Abstraksiya — keraksiz tafsilotni yashirish.
Kod misoli
abstract class Hayvon {
protected String ism;
Hayvon(String ism) { this.ism = ism; }
abstract String ovoz();
}
class It extends Hayvon {
It(String ism) { super(ism); }
@Override String ovoz() { return "Vov"; }
}
class Mushuk extends Hayvon {
Mushuk(String ism) { super(ism); }
@Override String ovoz() { return "Miyov"; }
}
List<Hayvon> ro = List.of(new It("Bars"), new Mushuk("Pufik"));
for (Hayvon h : ro) System.out.println(h.ovoz()); // polimorfizm
Keng tarqalgan xatolar
- @Override yozmaslik — metod nomida xato bo'lsa kompilyator ogohlantirmaydi.
- equals() ni override qilib hashCode() ni unutish — HashMap/HashSet noto'g'ri ishlaydi.
Mashqlar
- `Shakl` abstrakt klassi va Doira/To'rtburchak vorislarini yozib yuzalarini hisobla.
- equals() va hashCode() ni birga to'g'ri yozib, HashSet'da tekshir.
Teglar: oop, meros, polimorfizm