Encapsulation

C++ da Encapsulation haqida

C++ da Inkapsulyatsiya (Encapsulation)

Inkapsulyatsiya OOP(Obyektga yo’altirilgan dasturlash) ning asosiy tushunchalaridan biri hisoblanadi. Inkapsulyatsiyaning asosiy vazifasi class ichidagi ma’lumotlarni foydalanuvchidan yashirish, to’g’ridan to’g’ri kirishni oldini olish va ma’lumotlar havfsizligini oshirish hisoblanadi. Buning uchun classimizni private kalit so’zi yordamida e’lon qilishimiz lozim. Ma’lumotlarni o’zgartirish uchun esa get va set funksiyalari (method) dan foydalanishimiz mumkin.

class Hodim {
     // To'g'ridan to'g'ri murojaat qilish mumkin bo'lmagan class a'zosi e'lon qilish.
     private:
      int maosh;
 
     public:
     // ishchi maoshini o'zgartirish uchun setter funksiya
       void setMaosh(int m){
 
           maosh = m;
       }
 
      // ishchi maoshini olish uchun getter funksiya
      int getMaosh(){
 
        return maosh;
      }
 
 
}

Ushbu holatda classning maosh o’zgaruvchisini to’g’ridan to’g’ri o’zgartira olmaymiz.

int main() {
 
  Hodim bugalter;
 
  bugalter.maosh = 1500000;
 
  cout << bugalter.maosh;
 
  return 0;
}
 
// natija:  error: 'int Hodim::maosh' is private within this context

Ko’rib turganingizdek dastur xatolik bilan yakunlandi. Maosh o’zgaruvchisi buyerda private bo’lgani uchun biz uni classdan tashqarida o’zgartira olmaymiz.

 
int main() {
 
  Hodim bugalter;
 
  bugalter.setMaosh(1500000);
 
  cout << "Hodimning maoshi : " <<  bugalter.getMaosh() << " UZS";
 
  return 0;
}
 
// natija: Hodimning maoshi: 1500000 UZS

Ushbu holatda biz classimizning public bo’lgan ikki funksiyasi (method) dan foydalangan holda hodimimzni maoshini belgilab uni erkranga chop qildik. Classimiz o’zgaruvchisini to’g’ridan to’g’ri modifikatsiya qilish esa imkonsiz va bu holat dasturlashda inkapsulyatsiya deb nomlanadi.

Ushbu sahifada

Xato haqida xabar berish