Junior
Объектке багытталган программалоо (OOP) негиздери жөнүндө айтып бериңиз.
sobes.tech AI
AIден жооп
Объектке багытталган программалоо (ООП) төрт негизги принципке негизделген:
-
Инкапсуляция: Маалыматтар (мүнөздөмөлөр) жана алар менен иштеген методдорду (функциялар) бир бүтүндүккө — объектке бириктирүү. Бул ишке ашыруу деталдарын жашырып, көзөмөлдөнгөн кирүүгө мүмкүндүк берет.
<?php class BankAccount { private float $balance = 0; // Жашырынган маалыматтар public function deposit(float $amount): void { // Методдор кирүүгө мүмкүндүк берет if ($amount > 0) { $this->balance += $amount; } } public function getBalance(): float { return $this->balance; } } ?> -
Абстракция: Объекттин маанилүү өзгөчөлүктөрүн бөлүп көрсөтүү жана маанилүү эмес деталдарды жашыруу. Чын дүйнөнүн жөнөкөйлөштүрүлгөн моделин түзүү.
<?php abstract class Shape { // Абстракттык класс abstract public function area(): float; // Абстракттык метод // Мүмкүн болсо, конкреттүү методдор да болушу мүмкүн: public function getDescription(): string { return "Бул форма."; } } class Circle extends Shape { private float $radius; public function __construct(float $radius) { $this->radius = $radius; } public function area(): float { // Абстракттык методду ишке ашыруу return M_PI * $this->radius * $this->radius; } } ?> -
Мураскорлуулук: Жаңы класс түзүү (балдар) — бар болсо (ата) негизинде, анын өзгөчөлүктөрү жана методдору менен мурас алуу. Бул кодду кайра колдонууга жардам берет.
<?php class Animal { protected string $name; public function __construct(string $name) { $this->name = $name; } public function eat(): void { echo "{$this->name} жейт.\n"; } } class Dog extends Animal { // Dog — Animalдан мурас алат public function bark(): void { echo "{$this->name} айтат: Woof!\n"; } } $dog = new Dog("Buddy"); $dog->eat(); // мурас алган методду колдонуу $dog->bark(); ?> -
Полиморфизм: Төртүнчү класстардын объекттери бир эле метод чакырууга өзүнчө жооп кайтаруу мүмкүнчүлүгү. "Көп форма".
<?php interface Speakable { // Полиморфизмдин мисалы үчүн интерфейс public function speak(): void; } class Cat implements Speakable { public function speak(): void { echo "Мяу!\n"; } } class Duck implements Speakable { public function speak(): void { echo "Кря!\n"; } } function makeSound(Speakable $animal): void { // Функция ар кандай объекттерди кабыл алат $animal->speak(); // Бирдей методду чакыруу } $cat = new Cat(); $duck = new Duck(); makeSound($cat); // Cat::speak() методун чакыруу makeSound($duck); // Duck::speak() методун чакыруу ?>