Junior
Millised objektorienteeritud programmeerimise aspektid on Dart keeles olemas?
sobes.tech AI
Vastus AI-lt
Dartis on järgmised OOP aspektid:
- Klassid ja objektid: Võimalus määratleda klassid väljade ja meetoditega, luua klasside eksemplare (objekte).
- Kapseldus: Detailide varjamine juurdepääsuklasside modifikaatorite (
_privaatsete liikmete jaoks) ja getter/setter meetodite abil. - Pärimine: Funktsionaalsuse laiendamine olemasolevates klassides, kasutades võtmesõna
extends. - Polümorfism: Võime töödelda erinevate klasside objekte ühtselt, kasutades ühise liidese või baasklassina.
- Abstraktsioon: Abstraktsete klasside ja liideste loomine lepingute määratlemiseks.
Dart näide klassist:
class Animal {
String _name; // Privaatne väli
Animal(this._name); // Konstruktor
String get name => _name; // Getter
void makeSound() {
print('Üldine looma hääl'); // Meetod
}
}
Näide pärimisest:
class Dog extends Animal {
Dog(String name) : super(name); // Kutsutakse baasklassi konstruktor
@override // Baasklassi meetodi ülekirjutamine
void makeSound() {
print('Vau!');
}
}
Polümorfismi näide:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Kutsub meetodi makeSound(), mis võib olla erinev erinevatel Animal tüüpidel
}
// Kasutamine:
// makeAnimalSound(Dog('Buddy')); // Kuvab "Vau!"
Dart toetab ka mixineid, kasutades võtmesõna with, mis võimaldab klasside koodi taaskasutust ilma otsese pärimiseta.