OYP asosida bitta struktura (tuzilishda) da ma’lumotlarni va ular ustida bajariladigan amallarni birlashtirish g‘oyasi yotadi.
OYP uchta asosiy tushunchaga tayanadi: inkapsulyatsiya, vorislik va polimorfizm.
Inkapsulatsiya – ma’lumotlar va shu ma’lumotlar bilan ishlaydigan protsedura va funksiyalar aralashmasini hosil qilishdir. Natijada ma’lumotlarning yangi turi–obyekt hosil bo‘ladi.
Vorislik–aniqlangan obyektlardan foydalangan holda ulardan kelib chiquvchi obyektlar iyerarxiyasini hosil qilish. Har bir «voris» o‘z «ajdodi» dagi ma’lumotlar tavsifi va ulrni qayta ishlovchi usullar (metodlar) ni o‘zlashtiradi.
Polimorfizm–vorislik iyerarxiyasidagi barcha obyektlarga bir vaqtda qo‘llanadigan, bir xil nomdagi amallarni (protsedura va funksiyalar) aniqlash imkoniyatidir. Bunda har bir obyekt bu amalni o‘z ustida bajarilishida o‘ziga xosliklarini buyurtma berishi mumkin.
OYP murakkab programmalarni yozishni soddalashtiradi va bu jarayonga ixchamlik xususiyatini beradi. OYP ning asosiy afzalligi shundaki programma qo‘llash sohasini o‘zgartirishga dastruni o‘zgartirmasdan, faqat obyektlar iyerarxiyasiga yangi o‘zgartirishlar (satxlar qo‘shish) orqali erishish mumkin.
Obyektlarni aniqlash. Obyekt-tarkibida o‘zaro bog‘langan har xil turdagi o‘zgaruvchilar (ma’lumotlar maydoni) va ularni qayta ishlaydigan protsedura va funksiyalardan (metodlar) tashkil topgan tuzilmadir. Obyekt turini aniqlash uchun “Object” maxsus so‘z aniqlangan va u quyidagicha e’lon qilinadi.
Type
Object
;
;
End;
bilan aniqlangan har bir o‘zgaruvchi shu tur nusxasi (namunasi) deyiladi.
Misol. Belgi va matn ma’lumotlar bilan ishlaydigan obyekt.
Type
ObjPos Object
Line, Col : Word;
Procedure Init (Init_Line,Init_Col : Word);
Function GetLine: Word; {Line qiymatini qabul qilish}
Function GetCol: Word; {Col qiymatini qabul qilish}
Procedure Print;
End;
Procedure ObjPos.Init(Init_Line, Init_Col : Word);
Begin
Line : Init_Line;
Col : Init_Col;
End;
Function ObjPos.Get_Line : Word;
Begin
Get_Line : Line
End;
Function ObjPos.Get_Col : Word;
Begin
Get_Col : Col
End;
Procedure ObjPos.Print;
Begin
Write(#7);
End;
...
Var
ObjPos_Var : ObjPos; {obyekt nusxasini e’lon qilish}
...
Begin
...
ObjPos_Var.Init(5,15); {obyekt uchun boshlang‘ich qiymatlar berish}
...
End;
Obyektni e’lon qilishda metodlarning sarlavxalarigina yoziladi. Protsedura va funksiyalar e’loni programma e’lon qismining boshqa bo‘lagida bo‘lishi mumkin. Obyekt maydonlariga murojaat yozuv (Record) maydonlariga murojaat bilan bir xil («.» –nuqta va With operatori orqali). Lekin obyekt ma’lumotlariga quyidagicha murojaat ijobiy baholanmaydi.
ObjPos_Var.Line :5;
ObjPos_Var.Col :15;
Umuman, OYPda obyekt ma’lumotlariga murojaat faqat metodlar orqali amalga oshiriladi.
Obyektlarni e’lon qilishda ma’lum bir talablar bajarilishi kerak:
- obyekt turi asosiy daturning (modullarining) Type bo‘limida e’lon qilinishi mumkin. Qism-programmalarda lokal obyektlarni e’lon qilish mumkin emas;
- obyekt turini aniqlashda ma’lumotlar maydoni metodlar maydonidan oldin kelishi kerak;
- obyekt komponentasi sifatida fayl kelishi mumkin emas, va aksincha, fayl “obyekt” turidagi komponentaga ega bo‘lishi mumkin emas.
ObjPos obyekti orqali matn ekranidagi birorta belgi holati aniqlanadi. Endi belgini o‘zini aniqlovchi va uning ustida ma’lum bir ish bajaruvchi ObjSym obyektini aniqlaylik.
Uses Crt;
Type
ObjSym Object
Line, Col : Word;
Sym : Char;
Procedure Init (Init_Line,Init_Col: Word; Init_Sym : Char);
Function GetLine: Word;
Function GetCol: Word;
Procedure Print;
End;
Procedure ObjSym.Init(Init_Line, Init_Col : Word);
Begin
Line : Init_Line;
Col :Init_Col;
Sym :Init_Sym;
End;
Function ObjSym.Get_Line : Word;
Begin
Get_Line :Line
End;
Function ObjSym.Get_Col : Word;
Begin
Get_Col :Col
End;
Procedure ObjSym.Print;
Begin
Crt.GotoXY(Col,Line);
Write(Sym);
End;
Agar bu obyektning aniqlanishiga e’tibor beradigan bo‘lsak, unda ObjPos obyektidagi ma’lumotlar va Get_line, Get_Col funksiyalaridan foydalanilgan. Sym va Print komponentalari yangidan qo‘shilgan va Init protsedurasi qaytadan yozilgan. Ko‘rinib turibdiki, ObjSym obyekti ObjPos obyekti xususiyatlarini vorislik qilib olgan. Umuman aytganda, OYPda vorislik–bu obyektlarning oddiy tuzilishdan murakkab tuzilishga tomon obyekt xususiyatlarini olib o‘tishi va rivojlanishidir.