Sobes.tech
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:

  1. İ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;
        }
    }
    ?>
    
  2. 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;
        }
    }
    ?>
    
  3. İ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();
    ?>
    
  4. 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ı
    ?>