Sobes.tech
Junior

Kādi objektorientētas programmēšanas aspekti ir Dart valodā?

sobes.tech AI

Atbilde no AI

Dartā ir šādi OOP aspekti:

  • Klases un objekti: Iespēja definēt klases ar laukiem un metodēm, izveidot klases instances (objektus).
  • Iekapsulēšana: Detalju slēpšana, izmantojot piekļuves modifikatorus (_ privātiem locekļiem) un getter/setter metodes.
  • Mantošana: Funkcionalitātes paplašināšana esošajās klasēs, izmantojot atslēgvārdu extends.
  • Polimorfisms: Spēja apstrādāt dažādu klases objektus vienādi, izmantojot kopēju saskarni vai bāzes klasi.
  • Abstrakcija: Izveidot abstraktas klases un saskarnes, lai definētu līgumus.

Dart piemērs:

class Animal {
  String _name; // Privāts lauks

  Animal(this._name); // Konstruktors

  String get name => _name; // Getter

  void makeSound() {
    print('Vispārīgs dzīvnieka skaņa'); // Metode
  }
}

Mantošanas piemērs:

class Dog extends Animal {
  Dog(String name) : super(name); // Izsauc bāzes klases konstruktoru

  @override // Pārraksta bāzes klases metodi
  void makeSound() {
    print('Vau!');
  }
}

Polimorfisma piemērs:

void makeAnimalSound(Animal animal) {
  animal.makeSound(); // Izsauc makeSound() metodi, kas var būt atšķirīga dažādu Animal tipu gadījumā
}

// Lietošana:
// makeAnimalSound(Dog('Buddy')); // Izvadīs "Vau!"

Dart atbalsta arī mixins, izmantojot atslēgvārdu with, kas ļauj atkārtoti izmantot klases kodu bez tiešas mantošanas.