Menu
Coddy logo textTech

Özet - Çalışan Hiyerarşisi

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

challenge icon

Görev

Kolay

Bu bölümdeki tüm kalıtım kavramlarını bir araya getiren eksiksiz bir çalışan hiyerarşisi sistemi oluşturalım. Temel bir çalışan sınıfı oluşturacak ve bunu her biri kendine özgü davranışlara sahip uzmanlaşmış rollerle genişleteceksiniz.

Kodunuzu iki dosya halinde düzenleyeceksiniz:

  • employee.dart: Çalışan hiyerarşinizi burada tanımlayın:
    • String name, double salary ve int id özelliklerine sahip bir Employee temel sınıfı. Bir yapıcı (constructor) ve '[name] (ID: [id]) - Salary: $[salary]' döndüren bir getDetails() metodu ekleyin.
    • Employee sınıfını genişleten ve bir int teamSize özelliği ekleyen bir Manager sınıfı. Kalıtım alınan alanlar için super parametrelerini kullanın. getDetails() metodunu, üst sınıfın detaylarını ve ardından ', Team: [teamSize] members' ifadesini döndürecek şekilde geçersiz kılın (override).
    • Employee sınıfını genişleten ve bir String language özelliği ekleyen bir Developer sınıfı. getDetails() metodunu, üst sınıfın detaylarını ve ardından ', Specializes in [language]' ifadesini döndürecek şekilde geçersiz kılın.
    • Developer sınıfını genişleten ve bir int projectCount özelliği ekleyen bir TeamLead sınıfı. getDetails() metodunu, Developer versiyonunun üzerine ', Leading [projectCount] projects' ifadesini ekleyerek oluşturacak şekilde geçersiz kılın.
  • main.dart: Çalışan dosyanızı içe aktarın ve her çalışan türünden örnekler oluşturun:
    • Adı 'Alice', maaşı 50000.0 ve id'si 101 olan bir Employee oluşturun.
    • Adı 'Bob', maaşı 75000.0, id'si 102 ve teamSize'ı 8 olan bir Manager oluşturun.
    • Adı 'Carol', maaşı 65000.0, id'si 103 ve dili 'Dart' olan bir Developer oluşturun.
    • Adı 'David', maaşı 80000.0, id'si 104, dili 'Python' ve projectCount'u 3 olan bir TeamLead oluşturun.
    • Her çalışan üzerinde getDetails() metodunu çağırmanın sonucunu her satıra bir tane gelecek şekilde yazdırın.

TeamLead sınıfının çok seviyeli kalıtımı nasıl gösterdiğine dikkat edin - Employee sınıfını genişleten Developer sınıfını genişletir. Her seviye, super kullanarak üst sınıflardan gelen bilgileri korurken kendi detaylarını ekler.

Beklenen çıktı:

Alice (ID: 101) - Salary: $50000.0, Team: 8 members
Bob (ID: 102) - Salary: $75000.0, Team: 8 members
Carol (ID: 103) - Salary: $65000.0, Specializes in Dart
David (ID: 104) - Salary: $80000.0, Specializes in Python, Leading 3 projects

Kendin dene

import 'employee.dart';

void main() {
  // TODO: 'Alice' isimli, 50000.0 maaşlı ve id'si 101 olan bir Employee oluşturun

  // TODO: 'Bob' isimli, 75000.0 maaşlı, id'si 102 ve teamSize'ı 8 olan bir Manager oluşturun

  // TODO: 'Carol' isimli, 65000.0 maaşlı, id'si 103 ve language'i 'Dart' olan bir Developer oluşturun

  // TODO: 'David' isimli, 80000.0 maaşlı, id'si 104, language'i 'Python' ve projectCount'u 3 olan bir TeamLead oluşturun

  // TODO: Her bir çalışan için her satıra bir tane gelecek şekilde getDetails() çıktısını yazdırın
}

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