Sobes.tech
Junior

Dart тилинде объектке багытталган программалоонун кайсы аспектилери бар?

sobes.tech AI

AIден жооп

Dartта төмөнкү объектке багытталган программалоонун аспекттери бар:

  • Класс жана объекттер: Класс аныктоо мүмкүнчүлүгү, талаалар жана методдор менен, класс мисалдарын (объекттер) түзүү.
  • Инкапсуляция: Ишке ашыруу деталдарын жашыруу, жетүүчү модификаторлорду (_ жеке мүчөлөр үчүн) жана 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 ошондой эле with ачкыч сөзү менен mixins колдоого алынган, бул класстардын кодун кайра колдонууга мүмкүндүк берет, түз мурассыз.