Bugungi o'rganadiganlarimiz:
1. OOP (Object Oriented Programming) nima ?
2. JavaScript da OOP
3. Class yordamida object yaratish
4. Encapsulation (Qobiqlash)
5. Abstraction (Tarkiblash)
6. Inheritance (Meroslash)
7. Polymorphism (Turlichalash)
8. Obyekt xususiyatlari
9. Sof Funksiyalar
10. To'plam
1. OOP (Object Oriented Programming) nima ?
Object Oriented Programming (Obyektga Yo'naltirilgan Dasturlash) bu dasturiy ta'minotni funksiyalar va mantiqdan ko'ra ma'lumotlar yoki obyektlar atrofida tashkil etadigan kompyuter dasturlash modeli. OOP shartlar, o'zgaruvchilar va funksiyalar haqida o'ylashni to'xtatadi.OOP uyushqoq, o'zini o'zi ta'minlaydigan obyektlar nuqtai nazaridan o'ylashni boshlashga majbur qiladi.
Nima uchun bizga OOP kerak ? OOP da yozilgan dasturdagi xatolarni topish ularni to'g'rilash, funksiyalar va o'zgaruvchilarni to'g'rilashdan ko'ra osonroq. Shuningdek, biz qobiq va meros kabi usullardan foydalanishimiz mumkin.
2. JavaScript da OOP
Boshqa dasturlash tillari kabi JavaScript da ham OOP mavjud, biz obyektlar yasaymiz va ularni ishlatamiz. Har qanday ma'lumot obyekt holatida kelishi mumkin, misol uchun sizning noutbukingiz haqidagi ma'lumotni ham obyekt ko'rinishida yaratish mumkin.
JavaScript bu Obyekt xususiyatlariga asoslangan til, bunday tillarda obyekt xususiyatlarga qobiqlanadi.
Biz eng ko'p ishlatadigan OOP da uchraydigan tushunchalar ro'yhat:
Object, property, and method
Class
Encapsulation
Abstraction
Reusability/inheritance
Polymorphism
Association
Aggregation
Composition
3. Class yordamida object yaratish
Biz JavaScript da Class orqali obyekt yaratish misolini ko'rishimiz mumkin:
class Person {
constructor(name, age, designation){
this.name = name
this.age = age
this.designation = designation
this.getName = function() {
console.log(“Name is:”, this.name)
}
}
}
const personObject = new Person(‘Abdullo’, 20, ‘Web Developer’)
personObject.getName()
// Name is: Abdullo
console.log(“Age is”, personObject.age)
// Age is 20
console.log(“Designation is:”, personObject.designation)
// Designation is: Web Developer
Biz birinchi bo'lib Person
degan Class
da obyekt yaratdik va unga constructor
orqali funksiyalar, qiymatlar berdik va biz bir qancha xususiyatlar yaratdik. Keyin esa Person
obyektini chaqirish uchun personObject
degan o'zgaruvchi yasadik va new
kalit so'zi orqali Obyektni chaqirdik. Qiymatlarni olib kelish uchun personObject
.qiymat qilib qiymatlarni chaqirdik.
4. Encapsulation (Qobiqlash)
Qobiqlashni o'rganishdan oldin biz uni nima ekanligini bilib olishimiz lozim. Qisqa qilib aytganda Qobiqlash ma'lumot yoki xabarni qobiqlaydi (ko'rsatmaydi). Xususiy o'zgaruvchilar joriy funksiyada ishlaydi ammo tashqarida ishlamaydi. Qisqa qilib aytganda Funksiya ichida yaratilgan har qanday o'zgaruvchi tashqaridan chaqirib bo'lmaydi.
Misol uchun:
const Person = function(_name, _title) {
const name = _name
const title = _title
return {
details : function() {
console.log(`${name} is a ${title}.`)
}
}
}
const person = new Person(‘Abdullo’, ‘Web developer’)
person.details()
// Abdullo is a Web developer.
Bu misolda name va title faqatgina funksiya ichida ko'rinadi, boshqa yerlarda ishlatish mumkin emas. details metodi chaqiruvchi uchun ko'rinadi. Bu misol bilan biz Person obyekti qobiqlangan deya olamiz.
5. Abstraction (Tarkiblash)
Tarkiblash bajariluvchi funksiyalarni berkitadi. Xabarlarni berkitadi va faqat ma'lumotlarni chaqiruvchiga ko'rsatadi.
Keling shuni misolda ko'rsak
const Person = function(_name, _title) {
const name = _name
const title = _title
//public
this.getName = function() {
return name
}
//private
const details = function() {
return `${name} is a ${title}.`
}
//public
this.getDetails = function() {
return details()
}
}
const person = new Person(‘Usmon’, ‘Web developer’);
console.log( person.getName() )
//Usmon
person.details();
// TypeError: person.details is not a function
console.log( person.getDetails() )
// Usmon is a Web developer.
Bu yerda biz faqatgina public o'zgaruvchilarni chaqira olamiz agarda biz private o'zgaruvchilarni chaqirsak bizga xatolik chiqariladi. Ishonamanki siz Abstraction yo'lini tushundingiz.
Hayotdan misol qiladigan bo'lsak siz otangizdan pul olsangiz, Otangiz sizga faqat pulni beradi siz pulni qayerdan qanday kelayotganini bilmaysiz, abstraction ham huddi shunday.
6. Inheritance (Meroslash)
Meroslash bu qayta o'sha funksiyani ishlata olish degani. U bizga yasalgan class yordamida yana bir yangi class yaratish imkonini beradi. Bu degani Parent class ichida biz child class yasay olamiz degani.
Keling shuni misolda ko'raylik:
7. Polymorphism (Turlichalash)
Polymorphism degani bu ko'pgina shakllar degan ma'noni beradi. Biz Polymorphism orqali ko'pgina obyektlar va datalar bilan shug'ullana olamiz. Biz bemalol ularni chaqirishimiz ham mumkin.
Keling shuni misolda ko'raylik:
8.Obyekt xususiyatlari
Prototip vositalari - bu konstruktor funktsiyasiga yangi usullar / xususiyatlarni qo'shish uchun soddalashtirilgan yondashuv. Konstruktor funktsiyasidan yaratilgan har bir obyektda "prototip" xususiyati sifatida tanilgan qo'shimcha yashirin xususiyat mavjud.
9.Sof Funksiyalar
Sof funktsiya - bu uning doirasidan tashqaridagi o'zgaruvchilar / holat / ma'lumotlarni mutatsiyaga olib keladigan funktsiya. Kontseptsiyani tushunish uchun misolni ko'rib chiqaylik:
10. Stack (To'plam)
Stek - bu ma'lumotlar tuzilishi. Bu dasturlash uchun formuladir. Buning ortidan "Oxirgi kirish birinchi chiqish" (LIFO) keladi. Hozirgi kunda JavaScript kodni yanada samarali bajarish uchun foydalanadi.