Abstraksiya (Abstraction)
Əvvəlcədən qeyd edim ki, obyekt yönümlü proqramlaşdırma (OYP) dillərində bir anlayışı bilmədən digərini tam başa düşmək mükün deyil. Çünki, bir anlayış digəri ilə sıx bağlıdır. Ona görə də qeyd olunanları, tam olaraq başa düşməməyiniz normaldır.
Abstraksiya, bir obyektin müəyyən hissələrini kənar dünyadan xaric etmə əməliyyatıdır. Yəni obyektin, daxili mexanizmini yox, sadəcə funksionallığının təqdim olunmasıdır. Məsələn, böyük ehtimalla mobil telefon istifadə edirsiniz, yəni sadəcə istifadə edirsiniz. Yəni, cihazın daxilində gedən çox mürəkkəb ―digital‖ proseslər sizi maraqlandırmır. Siz sadəcə, obyektin (telefon) kənar dünyaya təqdim olunan hissələri ilə işləyirsiniz. Ya da bir paltaryuyan maşının içərisində gedən proseslər insanlar üçün maraqlı deyil. Bütün o proseslər kombinasiyası insanlara bir neçə düymə ilə təqdim olunur. Beləliklə, bir müvafiq düymələri sıxmaqla obyektdən istifadə edirik. Proqramlaşdırma nöqteyi nəzərdən baxsaq, abstraksiya bir obyektin necə işləməyi ilə maraqlanmayıb, onu sadəcə istifadə etməkdən ibarətdir. Məsələn, bir fikirləşin, ekranda bir şey çap etdirəndə sadəcə
Console.WriteLine()
deyə bir ifadə yazırıq. Əslində pərdə arxasında ekranda əks olunacaq söz, çevrilir binar formata, müfaviq kodlaşdırmalar tənzimlənir, proqram məlumatı sistemə göndərir, sistem kompüterə qoşulmuş ekran kartlarını analiz edir və hazırda işlək vəziyyətdə olan ekran kartına binar formatdakı məlumatı göndərir. Ekran kartı da alınış məlumatı işləyərək, özünə qoşulmuş monitorun müvafiq piksellərini yandırır bla bla bla... Yəni, obyektin bizə necə işləməyi yox, sadəcə nə işə yaradığının məlum olmağı gərəkdiyi məqamlarda abstraksiya anlayışı özünü göstərir. Yox əgər siz özünüzü mühəndis hesab edirsinizsə, onda keçin C++ - a...
İnkapsulyasiya (Encapsulation)
Bu anlayış, abstraksiya anlayışına yaxın bir anlayışdır. İnkapsulyasiya dedikdə, bir obyektin müəyyən hissələrini istifadəçilərdən gizlətmək başa düşülür. Beləliklə, İnkapsulyasiya, bir bir sinfin proqramçını maraqlandırmayan hansısa üzvlərini ondan gizlətmək ya da bir sinfin üzvlərinə kənar dünyadan müdaxilə edilməsinin qarşısını almaq məqsədilə instifadə oluna bilər. Paltaryuyan məsələsinə qayıtsaq, əgər, həvəskar
şəkildə paltaryuyan maşının içini açsaq, ya onu yararsız vəziyyətə salarıq ya da elektrik vurmasından xəsarət alarıq. Yəni, bir obyektin hissələrinə kənardan nə cür müdaxilə olunabiləcəyini təyin etməkdir – inkapsulyasiya. C# - da inkapsulyasiya əməliyyatı üçün
―Hüquq təyinedicilər‖ (Access Modifiers) adlanan açar sözlərdən istifadə olunur.
Dostları ilə paylaş: |