Sobes.tech
Junior

Dart dilində obyekt yönümlü proqramlaşdırmanın hansı aspektləri mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

Dartda aşağıdakı OOP aspektləri mövcuddur:

  • Siniflər və obyektlər: Sinifləri sahələr və metodlar ilə təyin etmək, sinif nümunələri (obyektlər) yaratmaq imkanı.
  • İnkapsulyasiya: İcra detallərini gizlətmək üçün giriş modifikatorlarından (_ xüsusi üzvlər üçün) və getter/setter metodlarından istifadə.
  • Miras: Mövcud siniflərin funksionallığını extends açar sözü ilə genişləndirmək.
  • Polimorfizm: Müxtəlif siniflərin obyektlərini ümumi interfeys və ya əsas sinif vasitəsilə vahid şəkildə işləmək.
  • Abstraksiya: Müqavilələri müəyyən etmək üçün abstrakt siniflər və interfeyslər yaratmaq.

Dartda sinif nümunəsi:

class Animal {
  String _name; // Xüsusi sahə

  Animal(this._name); // Konstruktor

  String get name => _name; // Getter

  void makeSound() {
    print('Ümumi heyvan səsi'); // Metod
  }
}

Miras nümunəsi:

class Dog extends Animal {
  Dog(String name) : super(name); // Əsas sinfin konstruktorunu çağırmaq

  @override // Əsas sinfin metodunu yenidən təyin etmək
  void makeSound() {
    print('Hav!');
  }
}

Polimorfizm nümunəsi:

void makeAnimalSound(Animal animal) {
  animal.makeSound(); // makeSound() metodunu çağırır, bu müxtəlif Animal tipləri üçün fərqli ola bilər
}

// İstifadə:
// makeAnimalSound(Dog('Buddy')); // "Hav!" çap edir

Dart həmçinin with açar sözü ilə mixinləri dəstəkləyir, bu da siniflərin kodunu birbaşa miras almadan təkrar istifadə etməyə imkan verir.