Sobes.tech
Junior

Инкапсуляция эмне үчүн маалыматтарды жашыруудан башка эмне камтыйт?

sobes.tech AI

AIден жооп

Маалыматтарды жашыруу (объекттин ички ишке ашырылышын тышкы дүйнөдөн жашыруу) менен бирге, капсулдаштыруу төмөнкүлөрдү камтыйт:

  • Маалыматтар жана алар менен иштеген ыкмаларды бир объектке бириктирүү. Бул өзүн-өзү жетиштүү программалык бирдиктерди түзөт.
  • Маалыматтарга кирүүнү көзөмөлдөө. Кирүү модификаторлору (public, protected, private) аркылуу башка объекттер объекттин ички абалы менен кандайча өз ара аракеттене алат аны аныктоо. Бул маалыматтын бүтүндүгүн камсыз кылууга жана туура эмес өзгөртүүлөрдүн алдын алууга мүмкүндүк берет.
  • Кыскача байланыштуулукту азайтуу. Жогорку деңгээлдеги капсулдаштыруу бир объекттин ичинде жасалган өзгөртүүлөр системанын башка бөлүктөрүнө минималдуу таасир этетине көмөктөшөт.

Мисал:

<?php

class BankAccount {
    private $balance; // Маалыматты жашыруу

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

    public function deposit($amount) {
        if ($amount > 0) {
            $this->balance += $amount; // Методтор маалыматтар менен иштейт
        }
    }

    public function withdraw($amount) {
        if ($amount > 0 && $amount <= $this->balance) {
            $this->balance -= $amount; // Кирүү көзөмөлү жана бүтүндүк
            return true;
        }
        return false;
    }

    public function getBalance() {
        return $this->balance; // Көзөмөлдөнгөн кирүүгө мүмкүндүк берүү
    }
}

?>

Бул мисалда, маалыматтарды жашыруу (private $balance) коомдук ыкмалар (deposit, withdraw, getBalance) менен айкалышкан, алар ушул маалыматтарга кирүүнү жана өзгөртүүнү көзөмөлдөйт. Бул маалыматтар жана логиканы бир объектке бириктирип, капсулдаштыруу камсыз кылынат.