Menu
Coddy logo textTech

Özet - Hayvan Sistemi

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 56 / 110.

challenge icon

Görev

Kolay

Mixin'ler hakkında öğrendiğin her şeyi bir araya getiren eksiksiz bir hayvan sistemi oluşturalım! Bir temel Animal sınıfı, on anahtar sözcüğünü kullanan davranış mixin'leri ve bu yetenekleri farklı şekillerde birleştiren belirli hayvan sınıfları oluşturacaksın.

Kodunu üç dosyada düzenleyeceksin:

  • animal.dart: Tüm hayvanların kalıtım alacağı temel sınıfını tanımla:
    • Animal özelliğine ve bir kurucuya sahip bir String name sınıfı
    • describe() yazdıran bir [name] is an animal yöntemi
  • behaviors.dart: Hayvan dosyasını içe aktar ve her biri Animal anahtar sözcüğünü kullanarak on ile sınırlandırılmış üç davranış mixin'i oluştur:
    • Swimming yazdıran swim() yöntemine sahip bir [name] is swimming mixin'i
    • Flying yazdıran fly() yöntemine sahip bir [name] is flying mixin'i
    • Walking yazdıran walk() yöntemine sahip bir [name] is walking mixin'i
  • main.dart: Her iki dosyayı da içe aktar ve kalıtımı farklı mixin birleşimleriyle birleştiren üç hayvan sınıfı oluştur:
    • Duck sınıfını genişleten ve üç mixin'in tamamını (Swimming, Flying, Walking) kullanan bir Animal sınıfı
    • Fish sınıfını genişleten ve yalnızca Animal mixin'ini kullanan bir Swimming sınıfı
    • Bird sınıfını genişleten ve Animal ile Flying mixin'lerini kullanan bir Walking sınıfı
    Ardından her hayvanın yeteneklerini göster:
    • Duck adında bir 'Donald' oluştur, describe() çağır, ardından swim(), fly() ve walk() çağır
    • Boş bir satır yazdır
    • Fish adında bir 'Nemo' oluştur, describe() çağır, ardından swim() çağır
    • Boş bir satır yazdır
    • Bird adında bir 'Tweety' oluştur, describe() çağır, ardından fly() ve walk() çağır

Her mixin, name kısıtlaması sayesinde on Animal özelliğine erişebilir; bu da esnek davranış birleştirme olanağı sunarken tür güvenliğini sağlar.

Beklenen çıktı:

Donald is an animal
Donald is swimming
Donald is flying
Donald is walking

Nemo is an animal
Nemo is swimming

Tweety is an animal
Tweety is flying
Tweety is walking

Kendin dene

import 'animal.dart';
import 'behaviors.dart';

// TODO: Animal sınıfını genişleten ve Swimming, Flying, Walking mixin'lerini kullanan Duck sınıfını oluşturun
class Duck {
  // TODO: Duck sınıfını uygulayın
}

// TODO: Animal sınıfını genişleten ve yalnızca Swimming mixin'ini kullanan Fish sınıfını oluşturun
class Fish {
  // TODO: Fish sınıfını uygulayın
}

// TODO: Animal sınıfını genişleten ve Flying ile Walking mixin'lerini kullanan Bird sınıfını oluşturun
class Bird {
  // TODO: Bird sınıfını uygulayın
}

void main() {
  // TODO: 'Donald' adında bir Duck oluşturun
  // describe(), swim(), fly(), walk() metodlarını çağırın
  
  // TODO: Boş bir satır yazdırın
  
  // TODO: 'Nemo' adında bir Fish oluşturun
  // describe(), swim() metodlarını çağırın
  
  // TODO: Boş bir satır yazdırın
  
  // TODO: 'Tweety' adında bir Bird oluşturun
  // describe(), fly(), walk() metodlarını çağırın
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi