Sobes.tech
Junior

Dasturlashda inkapsulyatsiya nima?

sobes.tech AI

AIdan javob

Dasturlashda kapsüllash ma'nosi ma'lumotlar va ular bilan ishlash usullarini yagona ob'ekt (obyekt) ichida birlashtirish va tashqi dunyodan ichki amalga oshirishni yashirishdir. Bu ma'lumotlarga kirishni nazorat qilish, ularni noto'g'ri o'zgartirishdan himoya qilish va kodni saqlashni soddalashtirish imkonini beradi, uni yanada modulli va moslashuvchan qiladi.

Kapsüllashning asosiy afzalliklari:

  • Ma'lumotlarni yashirish: Ob'ektning ichki holati faqat belgilangan metodlar (getterlar va setterlar) orqali kirish mumkin.
  • Kirishni nazorat qilish: Ma'lumotlarni o'zgartirishda validatsiya mantiqini qo'llash mumkin.
  • Bog'liqlikni kamaytirish: Bir ob'ektning ichki amalga oshirishdagi o'zgarishlar, agar interfeys o'zgarmagan bo'lsa, uni ishlatadigan boshqa ob'ektlarni o'zgartirishni talab qilmaydi.
  • Qo'llab-quvvatlashni yaxshilash: Kod tushunarliroq va o'zgartirish osonroq bo'ladi.

JavaScript misoli:

class User {
  constructor(name, age) {
    this._name = name; // Maxfiy xususiyat (an'anaviy, JSda majburiy emas, maxfiy maydonlarga qadar)
    this._age = age;
  }

  getName() { // name uchun getter
    return this._name;
  }

  getAge() { // age uchun getter
    return this._age;
  }

  setAge(newAge) { // age uchun setter va validatsiya
    if (newAge > 0) {
      this._age = newAge;
    } else {
      console.error("Yosh nolga teng yoki undan katta bo'lishi kerak.");
    }
  }
}

const user = new User("Ivan", 30);
console.log(user.getName()); // Getter orqali kirish: Ivan
user.setAge(31); // Validatsiya bilan setter orqali o'zgartirish
console.log(user.getAge()); // Getter orqali kirish: 31
user.setAge(-5); // Noto'g'ri o'zgartirishga urinishda xato