— Salom, Amigo!
— Salom!
— Bugun biz Object sinfini o'rganamiz.
Sen uni allaqachon uchratgan bo'lishing mumkin va bilasan, Object barcha sinflar uchun asosiy sinf. Unda deyarli hech qanday ma'lumot yo'q, ammo bir nechta metodlar bor.
— Unda metodlar nimaga kerak? Kimdir uning obyektlarini yaratadi, deganmisan?
— Bu holatga shunday qarang – Object’da mavjud bo'lgan metodlar, aslida barcha sinflarda mavjud. Ya'ni, Java dasturchilari barcha sinflarda bo'lishi kerak deb hisoblagan bir nechta metodlarni tanlab, ularni Object sinfiga qo'shishgan.
Polimorfizm – Object sinfining metodlarini merosxo‘r sinflarda qayta aniqlash imkoniyati – bilan bu juda kuchli vositani hosil qiladi.
Keling, bu qanday metodlar ekanligini ko'rib chiqaylik:
| Метод | Тавсиф |
|---|---|
|
Obyektning matnli tasvirini qaytaradi. |
|
Obyektlarni taqqoslash uchun ishlatiladigan metodlar juftligi. |
|
Amaldagi sinfni tavsiflovchi maxsus obyektni qaytaradi. |
|
Obyektga turli tarmoqlardan kirishni boshqarish uchun metodlar. Tarmoqlarni sinxronlashni boshqarish. |
|
Metod, Java bo'lmagan resurslarni "bo'shatish" imkonini beradi: fayllarni yopish, oqimlar va h.k. |
|
Obyektni ko'paytirish imkonini beruvchi metod: obyektni dublikatini yaratadi. |
Metodlar 6 guruhga bo'linishi mumkin. Ba'zilari bilan allaqachon tanishsan, qolganlari bilan esa kelgusi darslarda tanishib chiqamiz.
— Bu yerda foydali narsani ko'rmayapman.
— Amigo! Agar bu metodlar muhim bo'lmasa, ularni barcha obyektlarga kiritishmasdi! Shuning uchun men senga tavsiya qilaman – bu nima ekanligini va ular nimaga kerakligini yaxshilab tushunib oling. Agar ular muhim emasdek tuyulsa, demak, nimanidir noto'g'ri tushungansan.
— Ok. Men diqqat bilan eshitaman.
— toString() metodidan boshlaymiz;
Bu metod har qanday obyektdan matnli tavsif olish imkonini beradi. Object sinfida uning amaliyoti juda oddiy:
return getClass().getName() + "@" + Integer.toHexString(hashCode());
getClass() va hashCode() – bu ham Object sinfining metodlari.
Mana, ushbu metodni chaqirishning standart natijasi
java.lang.Object@12F456
— Bu tasvir qanday foydali bo'lishi mumkin?
— Bunday tavsifdan ushbu metod chaqirilgan obyektning sinfini bilib olish mumkin. Shuningdek, obyektlarni farqlash mumkin – har xil obyektlarga @ belgidan keyin har xil raqamlar mos keladi.
Lekin ushbu metodning qiymati boshqa joyda. Ushbu metod har qanday sinfda qayta aniqlanib, obyektning yanada kerakli yoki batafsil tavsifini qaytarishi mumkin.
Aynan shuningdek, har bir obyekt uchun uning matnli tasvirini olish mumkin, shuning uchun Java'da stringlar va obyektlarning "qo‘shilishi"ni qo‘llab-quvvatlash amalga oshirilgan.
Mana, ko'rib chiqing:
| Kod | Aslida nima sodir bo'ladi |
|---|---|
|
|
|
|
|
|
— Ha, men doim undan foydalanaman. Ayniqsa, dastur yozayotganda yoki unda xatolarni qidirayotganda. Foydali metod
GO TO FULL VERSION