Obyekt Yönümlü Proqramlaşdırma

   Bizim bura qədər yazdığımız proqramlar funksiyalardan, yəni verilənlər üzərində manipulyasiya edən ifadələr bloklarından ibarət idi. Bu yanaşmaya prosedur yönümlü proqramlaşdırma deyilir. Lakin proqramlaşdırmada daha müasir bir paradiqma da var: obyekt yönümlü proqramlaşdırma (OYP).

Obyekt Yönümlü Proqramlaşdırma

   Bu paradiqma verilənlər və funksionallığı obyekt daxilində birləşdirməyə imkan verir. OYP-da verilənlər və onları emal edən funksiyaların bir araya gətirilərək obyekt daxilində saxlanması, eləcə də kənar müdaxilə və yanlış istifadədən qorunmasına inkapsulyasiya (encapsulation) deyilir.

   Obyekt yönümlü proqramlaşdırmanın iki əsas aspekti var – sinif (class) və obyekt (object). Sinif  mahiyyət etibarilə meydana gətirilən yeni bir tipdir, obyekt isə bu tipdən olan konkret bir nümayəndədir (instance). Bunu sadə misalla izah edək. Məsələn İNSAN sinfi bir tipdir, Hz. Adəm obyekti isə bu tipin bir nümayəndəsidir.

   Obyektlər verilənləri özlərinə aid adi dəyişənlərdə saxlayır. Obyekt və ya siniflərə aid olan dəyişənlər sahələr (fields) adlanır. Bundan başqa obyektlərin funksionallığı da ola bilər, yəni onlar funksiyalara sahib ola bilərlər. Bu cür funksiyalara metodlar deyilir. Sahə və metodlar isə bütövlükdə atributlar adlanır. Obyektə onu digər obyektlərdən fərqləndirən xüsusiyyətlərin verilməsi abstraksiya (abstraction) adlanır.

   Obyekt yönümlü proqramlaşdırmanın üstün cəhətlərindən biri də kodun çoxdəfəlik istifadəsidir. Yəni bir dəfə yazılan proqram kodu daha sonra istənilən qədər istifadə oluna bilər. Lazım gələrsə onun baza əsasında əlavələrlə təkmilləşdirilmiş yeni bir kod da hazırlamaq mümkündür. Obyekt yönümlü proqramlaşdırmada bu məqsədlə varislik (inheritance) mexanizmindən istifadə olunur.

   Varisliyi tətbiq etməklə bir sinifdən onun varislərini (xələflərini) əldə etmək mümkündür. Bu zaman yeni xələf sinfin obyektləri öz atributlarından başqa sələf sinfin atributlarına da malik olurlar. Sələf sinfin atributları xələf sinif daxilində yenidən təyin oluna bilər. Ədəbiyyatda sələf sinfə baza sinfi (base class), xələf sinfə də törəmə sinif (derived class) deyilir.

   Yuxarıda qeyd etdik ki, törəmə siniflər baza sinfinin atributlarını əxz edirlər. Adi qaydada bu mənimsəmə eynilə baş verir. Lakin ehtiyac olarsa, irsən keçən atribut varis sinif daxilində xüsusiləşdirilə bilər. Bu zaman eyni adlı bir metod baza sinfinin obyektləri üçün bir cür, törəmə siniflərin obyektləri üçün isə başqa cür realizasiya olunur. Eyni metodun ayrı-ayrı siniflərdə özünü fərqli göstərməsinə polimorfizm (polymorphism) deyilir.