3.ENKAPSULYASİYA
Enkapsulyasiyanın mənası bəzi “həssas” yəni qorunması lazım olan məlumatların istifadəçidən gizlədildiyinə əmin olmaqdır. Enkapsulyasiyanın real həyat nümunəsini nəzərdən keçirək, bir şirkətdə hesablar bölməsi, maliyyə bölməsi, satış bölməsi və s. kimi müxtəlif bölmələr var. Maliyyə bölməsi bütün maliyyə əməliyyatlarını idarə edir və maliyyə ilə bağlı bütün məlumatların qeydlərini aparır. Eynilə, satış bölməsi satışla bağlı bütün fəaliyyətləri idarə edir və bütün satışların qeydlərini aparır. İndi elə bir vəziyyət yarana bilər ki, nədənsə maliyyə şöbəsinin məmuruna müəyyən ayda satışlar haqqında bütün məlumatlar lazımdır. Bu halda onun satış bölməsinin məlumatlarına birbaşa daxil olmasına icazə verilmir. O, əvvəlcə satış bölməsindəki başqa bir məmurla əlaqə saxlamalı və sonra ondan xüsusi məlumatları verməsini tələb etməli olacaq. Enkapsulyasiya budur. Burada satış bölməsinin məlumatları və onları manipulyasiya edə bilən işçilər vahid “satış bölməsi” adı altında toplanır. Enskapsulyasiya da eyni ilə bu cür məlumatları gizlədir. C++ da enkapsulyasiya siniflərdə baş verir. Buna nail olmaq üçün sinif məlumatlarını, dəyişənlərini “private” elan etmək lazımdır. Çünki, sinifdən başqa yerdə bu məlumatlara daxil olmaq mümkün olmasın.Başqasının məlumatları əldə etməsini, dəyişdirməsini istəyirsinizsə bu zaman siz məlumatları və ya dəyişənləri “public” elan etməlisiniz. Private məlumatlara daxil olmaq üçün public “get” və “set” metodlarından istifadə olunur. Aşağıdakı nümunəyə nəzər salaq.
#include
using namespace std;
class Employee {
private: //burada private təyin edirik.
int salary;
public:
//set funksiyası təyin edirik
void setSalary(int s) {
if (s < 0)
{
cout << "SEHV" << endl;
}
else
salary = s;
}
// Get funksiyası təyin edirik
int getSalary() {
return salary;
}
};
int main() {
Employee e1;
e1.setSalary(1000);
cout << e1.getSalary();
return 0;
}
Biz burada set funksiyası ilə int main funksiyasından “salary” dəyişəninə qiymət mənimsətdik. Get funksiyası isə həmin qiyməti qaytardı. Həmçinin biz enkapsulyasiyadan istifadə edərək, başqaları tərəfindın yaranan səhvlərin qarşısını da ala bilərik. Məsələn: yuxarıda qed etdiyim nümunədə əyər başqası 0-dan kiçiy qiymət verərsə proqram dərhal səhv verəcək. Ümumiyyətlə enkapsulyasiya bizim proqramımızın təhlükəsizliyini təmin edir.
Dostları ilə paylaş: |