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ı
extendsaç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.