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() ?>