Sobes.tech
Junior

Obyektga yo'naltirilgan paradigma haqida nima bilasiz?

sobes.tech AI

AIdan javob

Obyekt yönümlü proqramlaşdırma (OOP) — bu "obyektlər" konsepsiyasına əsaslanan proqramlaşdırma paradigmasıdır, hansı ki, məlumatlar (sahələr və ya xüsusiyyətlər) və kod (metodlar və ya prosedurlar) ehtiva edə bilərlər. OOP-nin əsas prinsipləri:

  • İnkapsulyasiya: Məlumatlar və bu məlumatlar üzərində işləyən metodları bir blokda (sinifdə) birləşdirmək və daxili tətbiqi xarici dünyadan gizlətmək. Bu, giriş modifikatorları (public, protected, private) vasitəsilə həyata keçirilir.
  • Miras: Mövcud siniflərdən (ata siniflər) xüsusiyyətlər və metodlar miras alan yeni siniflər (alt siniflər) yaratmağa imkan verir. Bu, kodun təkrar istifadəsini və hiyerarşilərin təşkilini təşviq edir.
  • Polimorfizm: Eyni interfeys vasitəsilə müxtəlif məlumat və ya obyekt tiplərindən istifadə etmək imkanı. PHP-də bu, miras, interfeyslər və abstrakt siniflər vasitəsilə həyata keçirilir və müxtəlif siniflərin obyektləri eyni metod çağırışına fərqli cavab verə bilər.
  • Abstraksiya: Obeyektin ən vacib xüsusiyyətlərini vurğulamaq və daha az əhəmiyyətli detalları görməzlikdən gəlmək. PHP-də abstraksiya abstrakt siniflər və interfeyslər vasitəsilə əldə edilir.

OOP ilə əlaqəli əlavə anlayışlar:

  • Siniflər: Obyektlərin yaradılması üçün şablonlar, onların quruluşunu (xüsusiyyətlər) və davranışını (metodlar) müəyyən edir.
  • Obyektlər: Sinif nümunələri.
  • Interfeyslər: Sinifin həyata keçirməli olduğu metodların toplusunu müəyyən edir.
  • Traits: PHP-də kodun təkrar istifadəsini təmin edən mexanizm, siniflərin bir neçə trait-dən metodlar istifadə etməsinə imkan verir.

OOP modullarlığı, elastikliyi, kodun təkrar istifadəsini təşviq edir və böyük tətbiqlərin inkişafını və dəstəyini asanlaşdırır.

<?php

// Nümunə sinif
class Car {
    // Xüsusiyyət (inkapsulyasiya)
    private $model;

    // Konstruktor
    public function __construct($model) {
        $this->model = $model;
    }

    // Metod
    public function startEngine() {
        echo "Mühərrik " . $this->model . " işə salındı.\n";
    }
}

// Miras nümunəsi
class ElectricCar extends Car {
    public function startEngine() { // Polimorfizm
        echo "Elektrik mühərriki " . $this->model . " sükutla işə salındı.\n";
    }
}

// Obyektlərin yaradılması
$myCar = new Car("Sedan");
$myCar->startEngine();

$myElectricCar = new ElectricCar("Elektrikli avtomobil");
$myElectricCar->startEngine();

?>