Paket va Java interfeysi oʻrtasidagi asosiy farq shundaki, Package sinflarni osonlik bilan kirish va saqlash uchun sinflarni tasniflashga yordam beradi, Interfeys esa bir nechta merosni amalga oshirishga va abstraktsiyaga erishishga yordam beradi.
Java eng mashhur dasturlash tillaridan biridir. Java ning asosiy afzalligi shundaki, u ob'ektga yo'n altirilgan dasturlashni qo'llab-quvvatlaydi. Ushbu metodologiya dasturiy ta'minotda real dunyo ob'ektlarini modellashtirishga imkon beradi. Sinf - bu ob'ektni yaratish rejasi. Har bir ob'ektda atributlarni tavsiflash uchun ma'lumotlar yoki maydonlar yoki xatti-harakatlarni tavsiflash uchun xususiyatlar va usullar mavjud. Ushbu maqolada Java-da Java-da OOP bilan bog'liq ikkita tushuncha, paket va interfeys muhokama qilinadi.
Javada paket nima?
Java koʻp sonli sinflarni taqdim etadi. Barcha sinflarni bitta papkada saqlash qiyin bo'lishi mumkin, chunki unga kirish qiyin. Bu dasturni boshqarish qobiliyatiga ta'sir qilishi mumkin. Java sinflarni tartibga solish uchun paketlardan foydalanadi. Bu jildga o'xshaydi. Java API sinflarni funksionalligiga qarab turli paketlarga guruhlaydi. Shuning uchun har bir paket tegishli sinflar toʻplamini oʻz ichiga oladi.
Javadagi paketlarga misol
Bir nechta misollar toʻplami quyidagicha. Java.io to'plami kirish va chiqishni qo'llab-quvvatlovchi sinflarni o'z ichiga oladi. U File, PrintStream, BufferInputStream va boshqalarni o'z ichiga oladi. Java.net paketi tarmoq bilan bog'liq sinflarni o'z ichiga oladi. Ba'zi misollar URL, Socket, ServerSocket. Java.awt to'plami foydalanuvchining grafik interfeyslarini yaratish uchun zarur bo'lgan barcha sinflarni o'z ichiga oladi. Bular bir nechta Java API paketlari.
Dasturchi dasturda ma'lum bir sinfdan foydalanmoqchi bo'lsa, u paketni import qilishi kerak. Agar dasturchi java.io paketida BufferInputStream sinfidan foydalanmoqchi bo'lsa, import bayonotini quyidagicha yozishi kerak.
import java.util. BufferInoutStream;
Quyidagi bayonot util paketidagi barcha sinflarni import qiladi.
import java.util.;
Foydalanuvchi tomonidan belgilangan paketlarni yaratish ham mumkin.
paket xodimi;
ommaviy sinf xodimi {
}
Yuqoridagi misolga ko'ra, xodim paket nomidir. Xodimlar toifasi xodimlar to'plamining bir qismidir. Bu fayl xodimlar paketiga Employee.java sifatida saqlanadi.
Bundan tashqari, umumiy sinfni bir paketdan boshqasiga import qilish mumkin. Quyidagi misolga qarang.
01-rasm: A sinf
02-rasm: B sinf
A klassi 1-paketda joylashgan va unda displey deb nomlangan umumiy usul mavjud. B sinfi 2-paketda bo'lib, u asosiy usulni o'z ichiga oladi. Ular alohida paketlarda bo'lsa ham; B sinfi paket1 ni import qilish orqali A sinf ob'ektini yaratishi mumkin. 1-paketni import qilgandan so'ng, B sinf A sinf ma'lumotlari va usullariga kirish huquqiga ega.
Umuman olganda, Java paketi loyiha fayllarini tartibga solishga yordam beradi. Bu katta tizimni ishlab chiqishda juda foydali, chunki u barcha fayllarni uslubiy tarzda saqlashga imkon beradi. Bunga qo'shimcha ravishda, Java API paketlari dasturchilarga allaqachon mavjud sinflardan foydalanish imkonini beradi.
Javada interfeys nima?
Ba'zida dasturchi usulning ta'rifini bilmasligi mumkin. Bunday hollarda dasturchi faqat usulni e'lon qilishi mumkin. Mavhum usul - bu ta'rifga ega bo'lmagan usul. Unda faqat deklaratsiya bor. Kamida bitta mavhum usul mavjud bo'lganda, bu sinf mavhum sinfga aylanadi. Bundan tashqari, mavhum sinf mavhum usullar bilan bir qatorda mavhum bo'lmagan usullarni ham o'z ichiga olishi mumkin. Dasturchi mavhum sinflardan ob'ektlar yarata olmaydi.
Sinf mavhum sinfni kengaytirganda, yangi sinf mavhum sinfdagi barcha mavhum usullarni belgilashi kerak. Boshqacha qilib aytganda, mavhum A sinfida displey deb ataladigan mavhum usul mavjud deb faraz qiling. B klassi A sinfini kengaytiradi. Keyin B klassi usul ko'rinishini belgilashi kerak.
Java tilidagi interfeysga misol
A va B ham mavhum sinflar deb faraz qilaylik. Agar C klassi A va B ni kengaytirsa, u sinf C ikkala sinfning mavhum usullarini belgilashi kerak. Bu ko'p meros. Java bir nechta merosni qo'llab-quvvatlamaydi. Uni amalga oshirish uchun dasturchi interfeyslardan foydalanishi kerak. Agar A va B interfeyslar bo'lsa, C sinf ularni amalga oshirishi mumkin. Quyidagi misolga qarang.
03-rasm: A interfeysi
04-rasm: B interfeysi
A interfeysida displey1 abstrakt usuli, B interfeysida displey2 abstrakt usuli mavjud.
05-rasm: C sinfi
C klassi ham A, ham B interfeyslarini amalga oshiradi. Shuning uchun u ikkala usulni ham belgilashi kerak.
06-rasm: Asosiy usul
Endi asosiy usulda C ning ob'ektini yaratish va ikkala usulni chaqirish mumkin. Xuddi shunday, interfeyslar Java-da bir nechta merosni amalga oshirishga yordam beradi.
Bir nechta merosdan tashqari interfeyslar abstraktsiyaga erishishga yordam beradi. Bu OOPdagi asosiy tushunchalardan biridir. Abstraktsiya amalga oshirish tafsilotlarini yashirish va foydalanuvchiga faqat funksionallikni ko'rsatish imkonini beradi. Bundan tashqari, u ob'ekt qanday amalga oshirilganiga emas, balki nima qilayotganiga e'tibor berishga imkon beradi. Interfeys mavhum usullardan iborat bo'lgani uchun abstraktsiyani arxivlashga yordam beradi.
Java-dagi paket va interfeys o'rtasidagi farq nima?
Paket - bu kirishni himoya qilish va nomlar maydonini boshqarishni ta'minlaydigan tegishli sinflar guruhi. Interfeys sinfga o'xshash mos yozuvlar turi bo'lib, mavhum usullar to'plamidir. Paket ularga oson kirish va ularni saqlash uchun sinflarni uslubiy ravishda tasniflashga yordam beradi. Boshqa tomondan, Interfeys bir nechta merosni amalga oshirishga va mavhumlikka erishishga yordam beradi. Bu Java-dagi paket va interfeys o'rtasidagi asosiy farq. Bundan tashqari, paketni yozish usuli java.util, java.awt kabi kichik harflarda. Agar interfeys nomi Area bo'lsa, u interfeys maydonida yoziladi.
Xulosa – Paket va Java interfeysi
Paket va Java interfeysi oʻrtasidagi farq shundan iboratki, Paket sinflarni osonlik bilan kirish va saqlash uchun sinflarni tasniflashga yordam beradi, Interfeys esa bir nechta merosni amalga oshirishga va abstraktsiyaga erishishga yordam beradi.