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 ժառանգում է from Animal public function bark(): void { echo "{$this->name} ասում է՝ Վուֆ!\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() ?>