OOP haqida
Obyektga yo'naltirilgan dasturlashda o'zaro bog'liq bo'lgan o'zgaruvchi va funksiyalar bitta konteynerga joylanadi va bunday konteynerlar obyekt deb ataladi. Bir obyektga tegishli o'zgaruvchilar uning xususiyatlari, unga tegishli funksiyalar esa metodlari deb ataladi.
Masalan: avtomobil degan obyektda uning modeli, rangi, narxi uning xususiyatlari, yurgizish, to'xtash, tezlashish kabilar esa uning metodlari deyiladi.
Klass va obyekt
Klass bu obyekt yaratish uchun shablondir.
Bitta klassdan biz istalgancha nusxa olishimiz yoki obyektlar yaratishimiz mumkin.
Demak obyekt bu biror klassning xususiy ko'rinishidir
Odatda klass nomlari o'zgarmas, obyekt nomlari esa istalgancha bo'lishi mumkin.
OOP tamoyillari
Inkapsulyatsiya (Encapsulation) - o'zaro bog'liq ma'lumotlar va funksiyalarni birlashtirish.
Abstraksiya (Abstraction) - yordamida biz klassning ichki tuzilishini yashiramiz.
Tashqaridan qaraganda klassimiz 2 ta parametr va metoddan iborat bo'lishi mumkin.
Lekin uning ichida o'nlab boshqa metod va xususiyatlar bo'lishi mumkin. Klassdan foydalanishda esa uning ichki tuzilishini bilish talab etilmaydi.
Polimorfizm (Polymorphism) - voris klass super (ota) klassdan o'zlashtirilgan metodning nomini saqlagan holda uning ishlashini o'zgartirishiga polimorfizm deyiladi.
To'rttala qahramonimiz ham superklassdan attack() yani hujum metodini meros oldi. Lekin biz bu metodni har bir qahramon uchun turli ko'rinishda yozishimiz va talqin qilishimiz mumkin. Bu esa o'z navbatida bizni har bir qahramon uchun turli hujum metodlarini yozishning oldini oladi.