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