OOP (Obyekt yönümlü proqramlaşdırma) haqqında.

Ilkin Ismayilov
Pragmatech
Published in
4 min readAug 15, 2020

Obyekt yönümlü proqramlaşdırma paradiqması (OOP) problemin həllinə köklü fərqli yanaşma aparır. OOP həll edilməli olan problemə diqqət yetirmək əvəzinə, sistemi meydana gətirən obyektlərə diqqət yetirir.

Obyektlər, obyekt yönümlü proqramlaşdırma (OOP) dilinin əsas elementləridir. Bir obyekt həm vəziyyətə, həm də davranışa sahibdir.

Bir obyekt, adlandıra biləcəyimiz və təsvir edə biləcəyimiz bir şeydir. Obyektlər, proqramlarımızda modelləşdirmək istədiyimiz ‘şeylər’ dir və buna görə obyekt yönümlü bir proqramın məqsədi real dünyanı kodla təmsil etməkdir. Altıncı sinif kollecinin nümunəsini nəzərdən keçirsək, obyektlər tələbələr, müəllimlər, sinif otaqları və kompüterlər kimi şeylər olacaqdır.

Classları şablon kimi düşünsək, obyektlər şablonun tətbiqidir. Məsələn, əgər insan, bir insanın ola biləcəyi davranış və xüsusiyyətləri müəyyən edən bir classdırsa, biz də insan olmağın bütün tələblərini yerinə yetirdiyimiz üçün siz və mən bu insan classının obyektləriyik. Və ya avtomobili bir class olaraq düşünsək, müəyyən bir Honda Civic avtomobili həmin classın obyekti olardı. Bir avtomobilin sahib olduğu mühərrik, sükan, fənərlər və s.onun xüsusiyyətlərini , irəliləməsi, geriyə doğru hərəkət etməsi və s. onun davranışları olacaqdır. Obyekt yönümlü paradiqmanın gerçək dünyaya necə aid ola biləcəyini görə bilərik. Demək olar ki, real dünyada hər şeyi siniflər və obyektlər baxımından düşünmək olar, beləliklə bu hal OOP-ni populyar hala gətirir.

Obyekt və classlar anlayışları daxildə bir-birinə bağlıdır və obyekt yönümlü paradiqmanın əsasını təşkil edir.

Bir class ümumi davranış nümayiş etdirən, eyni xarakterik xüsusiyyətlərə malik olan obyektlər toplusunu təmsil edir. Ondan yarana biləcək obyektlərin planını və ya təsvirini verir. Bir class üzvü olaraq bir obyektin yaradılması instantasiya adlanır. Beləliklə, obyekt bir class nümunəsidir.

Obyekt yönümlü proqramlaşdırmada bir class, müəyyən bir obyekt tipinin metod və dəyişənlərinin şablon tərifidir. Beləliklə, obyekt bir classın müəyyən bir nümunəsidir; dəyişənlər əvəzinə həqiqi dəyərləri ehtiva edir.

• Classda, classın bütün və ya bəzi xüsusiyyətlərini miras ala biləcək alt classlar ola bilər. Hər bir alt class ilə class superclass olur.
• Alt classlar da öz ana classlarına aid olmayan öz metodlarını və dəyişənlərini təyin edə bilər.
• Bir classın və onun alt classlarının quruluşuna class iyerarxiyası deyilir.

Obyekt yönümlü proqramlaşdırmanın faydaları

Saxlanıla bilən (Maintainable)
Obyekt yönümlü Paradiqma metodları kodu daha uzunmüddətli edir. Səhvlərin mənbəyini müəyyən etmək, obyektlər müstəqil olduğundan daha asan olur. Yaxşı metodların dizayn prinsipləri sistemin dayanıqlığına kömək edir.

Yenidən istifadə edilə bilər (Reusable)
Obyektlər həm məlumatları, həm də məlumatların üzərində işləyən funksiyaları ehtiva etdiyindən, obyektləri özünə məxsus “qutular” hesab etmək olar. Bu, yeni sistemlərdə kodun təkrar istifadəsini asanlaşdırır.

Ölçüləndir (Scalable)
Obyekt yönümlü tətbiqetmələr, qurulmuş proqramlaşdırma köklərindən daha geniş miqyaslıdır. Bir obyektin interfeysi bir obyekti təkrar istifadə etmək üçün bir yol xəritəsi təmin etdiyi üçün, başqalarına təsir etmədən obyekt dəyişdirmək üçün lazım olan bütün məlumatları təmin edir. Bu, köhnə və səmərəsiz kodu daha sürətli alqoritmlərlə əvəz etməyi asanlaşdırır.

Obyekt yönümlü Paradiqmanın 4 əsas xarakteristikası

Abstraction (mücərrədlik)

Abstraksiya obyekt yönümlü proqramlaşdırma (OOP) dillərinin əsas anlayışlarından biridir. Əsas məqsədi istifadəçidən lazımsız detalları gizlətməklə mürəkkəbliyi idarə etməkdir. Bu, istifadəçiyə bütün gizli mürəkkəbliyi başa düşmədən və ya düşünmədən təqdim edilən abstraksiyanın üstündən daha mürəkkəb məntiq tətbiq etməyə imkan verir.

Abstraksiya, əsas məqama yönəltmək və yersizliyi ləğv etməkdir. Bir əhatə dairəsi olmadıqca bu məna vermir. Üstündəki şəkildəki nümunədə, Baytar həkimi (Vet) üçün həkimi üçün vacib olan pişiyə baxışı pişiyin hissələri olardı, pişiyin sevimli oyuncaq kimi bir şey olması onun üçün heç bir əhəmiyyət kəsb edə bilməz, halbuki pişiyin sahibi üçün onun pişiyə baxışı həkimdən fərqlidir.

Həqiqi bir abstraksiya nümunəsi bir avtomobildir. Bir avtomobili idarə etmək üçün, həqiqətən, avtomobilin kapotun altında nə olduğunu bilməməyimizə gərək yoxdur, ancaq bizə açıqladığı məlumatları və davranışları bilməliyik. Məlumatlar avtomobilin tablosuna yerləşdirilir və davranışı avtomobili idarə etmək üçün istifadə edə biləcəyimiz idarəetmə vasitələri ilə əks olunur.

Encapsulation (əhatə etmə)

Encapsulation lazımsız məlumatları gizlədir. Digər insanların bilməsini istəmədiyiniz şeylərin gizli qalması deməkdir. Məsələn, görüntüdə professorun tələbənin tapşırığını necə yerinə yetirdiyini bilməsi lazım deyil. Son məhsulla daha çox maraqlanır.

Inheritance (Miras alma)

Bənzərliklər çox vaxt dünyada mövcuddur. Yuxarıdakı şəkildəki kimi, ABŞ-ın iki prezidenti Corc H.W Buş (41-ci Prezident) ilə Corc W. Buş (43-cü Prezident) arasında bəzi oxşarlıqların olduğunu asanlıqla görmək olar.
George W. Buş George H.W Buşun oğludur. Atasından bioloji xüsusiyyətləri miras alır, eyni zamanda onun Corc W. Buş kimi tanıya biləcəyi özünəməxsus xüsusiyyətinə malikdir. Bu, bizi obyektlər arasında “bir” əlaqəni yaradan miras düşüncəsinə gətirir.

Polymorphism (çoxsahəli)

Geniş mənada, polimorfizm bizə müxtəlif tipli qurumlar üçün eyni interfeysdən istifadə etmək imkanı verir. Polimorfizmin iki əsas növü var, kompilyasiya vaxtı və iş vaxtı. İki sahə metoduna sahib bir Shape sinifiniz olduğunu söyləyin. Biri bir dairənin sahəsini qaytarır və tək tam qəbul edir; yəni radius girişdir və ərazini qaytarır. Başqa bir üsul bir düzbucağın sahəsini hesablayır və iki giriş, uzunluq və genişlik götürür. Kompilyator, çağırışdakı arqumentlərin sayına əsasən hansı sahə metodunun çağırılacağına əsasən qərar verə bilər. Bu polimorfizmin tərtib olunan zaman növüdür.

“Polimorfizm” sözü iki yunan sözündən, “çox” və “forma” sözlərindən gəlir. Polimorfizm ideyasını müxtəlif heyvanların “danışmaq” istədiyi ssenaridən asanlıqla nümunə göstərə bilərik. Yuxarıdakı şəkildən göründüyü kimi, hər bir heyvanın öz “danışma” üsulu var. Beləliklə, insan bütün heyvanlardan “danışmağı” istədikdə, hər bir heyvan öz qaydasında cavab verir. Bu, fərqli nümunələrin eyni şəkildə müalicə edilə biləcəyi polimorfizmin gücünü göstərir.

Mənbələr :

  1. https://sites.google.com/site/cs4217jan2011team2/programming-paradigms/object-oriented-paradigm
  2. https://ducmanhphan.github.io/2020-01-31-Some-important-concepts-of-OOP/
  3. https://subscription.packtpub.com/book/application_development/9781786463593/1/ch01lvl1sec13/object-oriented-paradigm

--

--