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

Mixinler hakkında öğrendiğiniz her şeyi bir araya getiren eksiksiz bir hayvan sistemi oluşturalım! Bir temel Animal sınıfı, on anahtar kelimesini kullanan davranış mixinleri ve bu yetenekleri farklı şekillerde birleştiren belirli hayvan sınıfları oluşturacaksınız.

Kodunuzu üç dosyada organize edeceksiniz:

  • animal.dart: Tüm hayvanların miras alacağı temel sınıfınızı tanımlayın:
    • Bir String name özelliğine ve bir yapıcıya (constructor) sahip bir Animal sınıfı
    • [name] is an animal çıktısını veren bir describe() metodu
  • behaviors.dart: Hayvan dosyasını içe aktarın ve her biri on anahtar kelimesini kullanarak Animal sınıfı ile sınırlandırılmış üç davranış mixini oluşturun:
    • [name] is swimming çıktısını veren swim() metoduna sahip bir Swimming mixini
    • [name] is flying çıktısını veren fly() metoduna sahip bir Flying mixini
    • [name] is walking çıktısını veren walk() metoduna sahip bir Walking mixini
  • main.dart: Her iki dosyayı da içe aktarın ve kalıtımı farklı mixin kombinasyonlarıyla birleştiren üç hayvan sınıfı oluşturun:
    • Animal sınıfını genişleten ve her üç mixini de (Swimming, Flying, Walking) kullanan bir Duck sınıfı
    • Animal sınıfını genişleten ve yalnızca Swimming mixinini kullanan bir Fish sınıfı
    • Animal sınıfını genişleten ve Flying ile Walking mixinlerini kullanan bir Bird sınıfı
    Ardından her hayvanın yeteneklerini gösterin:
    • 'Donald' adında bir Duck oluşturun, describe(), ardından swim(), fly() ve walk() metodlarını çağırın
    • Boş bir satır yazdırın
    • 'Nemo' adında bir Fish oluşturun, describe(), ardından swim() metodunu çağırın
    • Boş bir satır yazdırın
    • 'Tweety' adında bir Bird oluşturun, describe(), ardından fly() ve walk() metodlarını çağırın

Her mixin, on Animal kısıtlaması sayesinde name özelliğine erişebilir; bu da esnek davranış kompozisyonu sağlarken tip güvenliğini (type safety) garanti eder.

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