Junior
Кадом ҷиҳатҳои барномасозии объектӣ дар забони Dart мавҷуданд?
sobes.tech AI
Ҷавоб аз AI
Дартда дарҳолги объектӣ-бағоятӣ равишҳои зерин мавҷуданд:
- Классҳо ва объектҳо: Имконият барои муайян кардани классҳо бо майдонҳо ва методҳо, эҷоди намунаҳои классҳо (объектҳо).
- Инкапсулятсия: Гузоштани тафсилоти иҷроиш тавассути модификаторҳои дастрасӣ (
_барои аъзои хусусӣ) ва методҳои getter/setter. - Мерос: Тавсеъ додани функсионалӣ ба классҳои мавҷуда бо истифода аз калимаи калидии
extends. - Полиформизм: Имконият барои коркарди объектҳои класи гуногун ба таври якхела тавассути интерфейси умумӣ ё класс асосӣ.
- Абстраксия: Эҷоди классҳои абстрактӣ ва интерфейсҳо барои муайян кардани шартномаҳо.
Масали класс дар Dart:
class Animal {
String _name; // Майдони хусусӣ
Animal(this._name); // Конструктор
String get name => _name; // Getter
void makeSound() {
print('Садоии умумии ҳайвон'); // Метод
}
}
Масали мерос:
class Dog extends Animal {
Dog(String name) : super(name); // Даъвати конструктори класс асосӣ
@override // Навиштани методи класс асосӣ
void makeSound() {
print('Гаф!');
}
}
Масали полиформизм:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Даъвати методи makeSound(), ки метавонад барои намудҳои гуногуни Animal фарқ кунад
}
// Истифода:
// makeAnimalSound(Dog('Buddy')); // Натиҷа: "Гаф!"
Дар Dart инчунин қолаби mixins бо истифода аз калимаи калидии with дастгирӣ мешавад, ки имкон медиҳад кодҳои классҳоро бидуни мероси мустақим такрор истифода бурдан.