Muallif
July 11, 2024
181Encapsulation: obyektning xususiyatlari har xil dasturiy o'zgaruvchilardan iborat bo'ladi va ularning o'zgartirish uchun qandaydir funksiyalar bajariladi. Bunday funksiyalar bilan o'zgaruvchilarning holatini berkitish mumkin ya'ni aynan o'sha o'zgaruvchini tashqaridan o'zgartirish uchun albatta maxs
public loyihani (projectni) istalgan joyida foydalanish mumkin.
protected paketi umumiy bo'lgan va inheritance orqali bogʻlangan har qanday class uchun kirish huquqini beradi.
default (modifikator sifatida belgilanmagan) bir xil paket classlari tomonidan foydalanish mumkin.
private faqat bitta class foydalanish mumkin.
Java 100% obyektga yo'naltirilgan emas chunki javada primitive data types, static keyword va wrapper class lar mavjud. Shuning uchun java 100% obyektga yo'naltirilgan dasturlash tili emas.
Encapsulation: obyektning xususiyatlari har xil dasturiy o'zgaruvchilardan iborat bo'ladi va ularning o'zgartirish uchun qandaydir funksiyalar bajariladi. Bunday funksiyalar bilan o'zgaruvchilarning holatini berkitish mumkin, ya'ni aynan o'sha o'zgaruvchini tashqaridan o'zgartirish uchun albatta maxsus funksiyadan foydalanish kerak bo'ladi.
Inheritance: Ma'lum obyekt asosida boshqa obyektni yaratish jarayoniga aytiladi. Bunda obyektning barcha xususiyatlarini meros qilib oladi, ya'ni private (shaxsiy) bo'lmagan o'zgaruvchilari funksiyalari konstantalaridan bemalol foydalanish. Inheritancedan runtime polymorphismda foydalaniladi.
Polymorphism: OOPning uchinchi ustuni. Yuqorida berilgan ustunlar bilan doim birga yuradi. Ma'lum obyekt asosida boshqa obyektni yaratish jarayoniga aytiladi. Bir classning boshqa classdan meros olishi yordamida amalga oshiriladi. Meros olingan obyekt ota obyektdagi xususiyatlarni tanlovga ko'ra meros oladi. Masalan, avtoulov bu ota obyekt. Bu obyekt yordamida yengil mashina, yuk mashinasi, poyga mashinasi kabi boshqa obyektlarni yaratib olishimiz mumkin. Ota classda bo'lgan 4 g'ildirak bola classlarda ham mavjud bo'ladi. Ya'ni poyga mashinasi, avtoulovdan g'ildiraklarni meros oladi.
Abstraction: Muhim xususiyatlarni ifodalash va keraksiz tafsilotlarni yashirish orqali murakkab tizimlarni soddalashtirish.
Javada class — bu obyektlarning tuzilishi, xatti-harakati va xususiyatlarini belgilaydigan loyiha yoki shablon. U obyektlarning namunalarini yaratish uchun reja bo'lib xizmat qiladi. Boshqa tomondan, obyekt classning namunasidir. U yaratilgan classga asoslangan holda o'z holati va xatti-harakatiga ega bo'lgan muayyan obyektni ifodalaydi.
Javada konstruktordan classning instance ni yaratish uchun ishlatiladi. Konstruktor methodga o'xshaydi faqat 2 ta xususiyatidan tashqari:
Ba'zan konstruktor obyektni ishga tushirish uchun maxsus method deb ham ataladi.
"==" bu binary operator.
equals() methodi obyektlarni bir-biri bilan solishtiradi.
"Super kalit so'zi" yuqori parent class obyektlariga ishora qiladi. U superclass methodlarini chaqirish va superclass konstruktoriga kirish uchun ishlatiladi. Super kalit so'zining eng keng tarqalgan qo'llanilishi bir xil nomdagi methodlarga ega bo'lgan yuqori va kichik classlar o'rtasidagi chalkashlikni bartaraf etishdir.
O`zgarmas qiymatlarni yaratishda ishlatiladi.
Javada class loader .class file ni JVMga load qilish (yaʼni fayldan JVM orqali foydalanish) uchun ishlatiladi.
Ha, chunki javada o'ziga xos xususiyatlarga amal qilinmaydi.
Object Relational Mapping: Database dagi table larni javadagi obyektlar bilan mutanosib holda ishlatish uchun maxsus tool.
Java Persistens API
N+1 so'rov muammosi ma'lumotlar bazasini qidirishdagi muammo bo'lib, unda obyektning tegishli obyektlari ma'lumotlar bazasidan alohida so'raladi va O(n) so'rovlariga olib keladi, bu yerda n — obyektning tegishli obyektlari soni.
Domenga asoslangan dizayn arxitekturasi. Bu software design arxitekturada dasturiy ta'minotni yuqoridan pastga qarab ko'rib chiqish usuli.
Javada collection bu obyektlar guruhini saqlash va boshqarishni ta'minlovchi java frameworki bo'lib. U List, Set, Map va Queue kabi har xil turdagi maʼlumotlar tuzilmalarini boshqarish uchun yagona interfeys.
ArrayList va LinkedList ikkala List interfeysidan implement oladi. Ularning asosiy farqi shundaki, ArrayList massiv bilan, LinkedList esa bog'langan ro'yxat (linked list) bilan ishlaydi. ArrayList elementlarga tezkor kirishni ta'minlaydi, lekin yozish va o'chirish operatsiyalari sekinroq amalga oshiradi. LinkedList esa tezkor yozish va o'chirish operatsiyalarini bajaradi, lekin sekinroq qidiradi.
HashSet va TreeSet ikkala Set interfeysidan implement oladi. Ikkalasi o'rtasidagi asosiy farq shundaki, HashSet elementlarni