Menu
CoddyTech

Rangkuman: Sistem Hewan

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 56 dari 110.

challenge icon

Tantangan

Mudah

Mari kita bangun sistem hewan lengkap yang menggabungkan semua hal yang telah kamu pelajari tentang mixin! Kamu akan membuat class dasar Animal, mixin perilaku yang menggunakan kata kunci on, dan class hewan tertentu yang menggabungkan kemampuan ini dengan berbagai cara.

Kamu akan mengatur kodemu ke dalam tiga file:

  • animal.dart: Definisikan class dasar yang akan diwarisi semua hewan:
    • Class Animal dengan property String name dan sebuah konstruktor
    • Sebuah method describe() yang mencetak [name] is an animal
  • behaviors.dart: Impor file hewan dan buat tiga mixin perilaku, masing-masing dibatasi untuk Animal menggunakan kata kunci on:
    • Mixin Swimming dengan method swim() yang mencetak [name] is swimming
    • Mixin Flying dengan method fly() yang mencetak [name] is flying
    • Mixin Walking dengan method walk() yang mencetak [name] is walking
  • main.dart: Impor kedua file dan buat tiga class hewan yang menggabungkan pewarisan dengan kombinasi mixin yang berbeda:
    • Class Duck yang memperluas Animal dan menggunakan ketiga mixin (Swimming, Flying, Walking)
    • Class Fish yang memperluas Animal dan hanya menggunakan mixin Swimming
    • Class Bird yang memperluas Animal dan menggunakan mixin Flying dan Walking
    Lalu, tunjukkan kemampuan setiap hewan:
    • Buat Duck bernama 'Donald', panggil describe(), lalu swim(), fly(), dan walk()
    • Cetak baris kosong
    • Buat Fish bernama 'Nemo', panggil describe(), lalu swim()
    • Cetak baris kosong
    • Buat Bird bernama 'Tweety', panggil describe(), lalu fly() dan walk()

Setiap mixin dapat mengakses property name karena batasan on Animal, sehingga keamanan tipe tetap terjaga sekaligus memungkinkan komposisi perilaku yang fleksibel.

Output yang diharapkan:

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

Coba sendiri

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

// TODO: Buat class Duck yang mewarisi Animal dan menggunakan mixin Swimming, Flying, Walking
class Duck {
  // TODO: Implementasikan class Duck
}

// TODO: Buat class Fish yang mewarisi Animal dan hanya menggunakan mixin Swimming
class Fish {
  // TODO: Implementasikan class Fish
}

// TODO: Buat class Bird yang mewarisi Animal dan menggunakan mixin Flying dan Walking
class Bird {
  // TODO: Implementasikan class Bird
}

void main() {
  // TODO: Buat Duck bernama 'Donald'
  // Panggil describe(), swim(), fly(), walk()
  
  // TODO: Cetak baris kosong
  
  // TODO: Buat Fish bernama 'Nemo'
  // Panggil describe(), swim()
  
  // TODO: Cetak baris kosong
  
  // TODO: Buat Bird bernama 'Tweety'
  // Panggil describe(), fly(), walk()
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Dart online