Sobes.tech
Junior

Ma'lumotlarni yashirishdan tashqari, inkapsulyatsiya nima?

sobes.tech AI

AIdan javob

Ma'lumotlarni yashirish (obyektning ichki amalga oshirilishini tashqi dunyodan yashirish) bilan birga, kapsüllash quyidagilarni o'z ichiga oladi:

  • Ma'lumotlar va ular bilan ishlaydigan metodlarni yagona ob'ektga birlashtirish. Bu mustaqil dasturiy birliklarni yaratadi.
  • Ma'lumotlarga kirishni nazorat qilish. Kirish modifikatorlari (public, protected, private) yordamida boshqa obyektlar qanday qilib ob'ektning ichki holati bilan o'zaro aloqada bo'lishi aniqlanadi. Bu ma'lumotlarning yaxlitligini ta'minlash va noto'g'ri o'zgarishlarni oldini olish imkonini beradi.
  • Kohesiyani kamaytirish. Yuqori darajadagi kapsüllash, bir ob'ekt ichidagi o'zgarishlar tizimning boshqa qismlariga minimal ta'sir qilishiga yordam beradi.

Misol:

<?php

class BankAccount {
    private $balance; // Ma'lumotlarni yashirish

    public function __construct($initialBalance) {
        if ($initialBalance >= 0) {
            $this->balance = $initialBalance;
        } else {
            $this->balance = 0;
        }
    }

    public function deposit($amount) {
        if ($amount > 0) {
            $this->balance += $amount; // Metodlar ma'lumotlar bilan ishlaydi
        }
    }

    public function withdraw($amount) {
        if ($amount > 0 && $amount <= $this->balance) {
            $this->balance -= $amount; // Kirish nazorati va yaxlitlik
            return true;
        }
        return false;
    }

    public function getBalance() {
        return $this->balance; // Nazorat ostida kirish ta'minlaymiz
    }
}

?>

Ushbu misolda, ma'lumotlarni yashirish (private $balance) bilan birga, unga kirishni va o'zgarishni nazorat qiladigan jamoat metodlari (deposit, withdraw, getBalance) taqdim etilgan. Bu ma'lumotlar va mantiqni yagona ob'ektga birlashtiradi va kapsüllashni ta'minlaydi.