Junior
Obyekt yönümlü proqramlaşdırma (OOP) prinsipləri haqqında danış.
sobes.tech Süni İntellekt
AI-dan cavab
Obyekt yönümlü proqramlaşdırma (OOP) dörd əsas prinsipə əsaslanır:
-
İnkapsulyasiya: Məlumatların (xüsusiyyətlərin) və bu məlumatlarla işləyən metodların (funksiyaların) tək bir obyekt daxilində birləşdirilməsi. Bu, tətbiq detalları gizlədir və nəzarətli giriş təmin edir.
<?php class BankAccount { private float $balance = 0; // Gizli məlumatlar public function deposit(float $amount): void { // Giriş təmin edən metodlar if ($amount > 0) { $this->balance += $amount; } } public function getBalance(): float { return $this->balance; } } ?> -
Abstraksiya: Məlumatların əsas xüsusiyyətlərini vurğulamaq və önəmli olmayan detalları gizlətmək. Bu, real dünyanın sadələşdirilmiş modelidir.
<?php abstract class Shape { // Abstrakt sinif abstract public function area(): float; // Abstrakt metod // Konkret metodlar da ola bilər: public function getDescription(): string { return "This is a shape."; } } class Circle extends Shape { private float $radius; public function __construct(float $radius) { $this->radius = $radius; } public function area(): float { // Abstrakt metodun tətbiqi return M_PI * $this->radius * $this->radius; } } ?> -
İrsi alma: Mövcud bir sinif (valideyn) əsasında yeni sinif (övlad) yaratmaq və onun xüsusiyyətlərini və metodlarını miras almaq. Bu, kodun təkrar istifadəsini təşviq edir.
<?php class Animal { protected string $name; public function __construct(string $name) { $this->name = $name; } public function eat(): void { echo "{$this->name} is aan het eten.\n"; } } class Dog extends Animal { // Dog, Animal-dən irsi alır public function bark(): void { echo "{$this->name} says Woof!\n"; } } $dog = new Dog("Buddy"); $dog->eat(); // Miras alınan metoddan istifadə $dog->bark(); ?> -
Polimorfizm: Müxtəlif siniflərin obyektlərinin eyni metod çağırışına müxtəlif şəkildə cavab vermək qabiliyyəti. "Çox form".
<?php interface Speakable { // Polimorfizm nümunəsi üçün interfeys public function speak(): void; } class Cat implements Speakable { public function speak(): void { echo "Meow!\n"; } } class Duck implements Speakable { public function speak(): void { echo "Quack!\n"; } } function makeSound(Speakable $animal): void { // Müxtəlif obyekt tiplərini qəbul edən funksiya $animal->speak(); // Eyni metodun çağrısı } $cat = new Cat(); $duck = new Duck(); makeSound($cat); // Cat::speak() metodunun çağrısı makeSound($duck); // Duck::speak() metodunun çağrısı ?>