Junior
Koji aspekti objektno-orijentisanog programiranja su prisutni u jeziku Dart?
sobes.tech АИ
Одговор од АИ
U Dart-u postoje sledeći aspekti OOP:
- Klase i objekti: Mogućnost definisanja klasa sa poljima i metodama, kreiranje instanci klasa (objekata).
- Enkapsulacija: Sakrivanje detalja implementacije pomoću modifikatora pristupa (
_za privatne članove) i getter/setter metoda. - Nasleđivanje: Proširenje funkcionalnosti postojećih klasa pomoću ključne reči
extends. - Polimorfizam: Mogućnost da se objekti različitih klasa obrađuju na jedinstven način putem zajedničkog interfejsa ili osnovne klase.
- Apstrakcija: Kreiranje apstraktnih klasa i interfejsa za definisanje ugovora.
Primer klase u Dart-u:
class Animal {
String _name; // Privatno polje
Animal(this._name); // Konstruktor
String get name => _name; // Getter
void makeSound() {
print('Neki opšti zvuk životinje'); // Metod
}
}
Primer nasleđivanja:
class Dog extends Animal {
Dog(String name) : super(name); // Pozivanje konstruktora osnovne klase
@override // Prepisivanje metode osnovne klase
void makeSound() {
print('Vuf!');
}
}
Primer polimorfizma:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Pozivanje metode makeSound(), koja može biti različita za različite tipove Animal
}
// Upotreba:
// makeAnimalSound(Dog('Buddy')); // Ispisaće "Vuf!"
Dart takođe podržava mixine pomoću ključne reči with, što omogućava ponovno korišćenje koda klasa bez direktnog nasleđivanja.