Sobes.tech
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.