Menu
Coddy logo textTech

סיכום – היררכיית עובדים

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Dart של Coddy. שיעור 42 מתוך 110.

challenge icon

אתגר

קל

בוא נבנה מערכת היררכיית עובדים מלאה, שמאגדת את כל מושגי הירושה מהפרק הזה. תיצור מחלקת עובד בסיסית ותרחיב אותה באמצעות תפקידים מיוחדים, שלכל אחד מהם התנהגויות ייחודיות משלו.

תארגן את הקוד שלך בשני קבצים:

  • employee.dart: הגדר כאן את היררכיית העובדים שלך:
    • מחלקת בסיס Employee עם המאפיינים String name, double salary ו-int id. הוסף בנאי ומתודה getDetails() שמחזירה '[name] (ID: [id]) - Salary: $[salary]'
    • מחלקת Manager שמרחיבה את Employee ומוסיפה מאפיין int teamSize. השתמש בפרמטרי super עבור השדות שעוברים בירושה. דרוס את getDetails() כך שתחזיר את הפרטים של מחלקת האב ולאחריהם ', Team: [teamSize] members'
    • מחלקת Developer שמרחיבה את Employee ומוסיפה מאפיין String language. דרוס את getDetails() כך שתחזיר את הפרטים של מחלקת האב ולאחריהם ', Specializes in [language]'
    • מחלקת TeamLead שמרחיבה את Developer ומוסיפה מאפיין int projectCount. דרוס את getDetails() כדי להרחיב את הגרסה של Developer באמצעות הוספת ', Leading [projectCount] projects'
  • main.dart: ייבא את קובץ העובדים שלך וצור מופעים מכל סוגי העובדים:
    • צור Employee עם השם 'Alice', משכורת 50000.0 ומזהה 101
    • צור Manager עם השם 'Bob', משכורת 75000.0, מזהה 102 וגודל צוות 8
    • צור Developer עם השם 'Carol', משכורת 65000.0, מזהה 103 ושפה 'Dart'
    • צור TeamLead עם השם 'David', משכורת 80000.0, מזהה 104, שפה 'Python' ומספר פרויקטים 3
    • הדפס את התוצאה של קריאה ל-getDetails() עבור כל עובד, שורה אחת לכל עובד

שים לב כיצד TeamLead מדגימה ירושה רב-רמתית — היא מרחיבה את Developer, שמרחיבה את Employee. כל רמה מוסיפה פרטים משלה, תוך שמירה על המידע ממחלקות האב באמצעות super.

פלט צפוי:

Alice (ID: 101) - Salary: $50000.0
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

נסו בעצמכם

import 'employee.dart';

void main() {
  // TODO: צרו Employee עם השם 'Alice', שכר 50000.0 ו-id 101

  // TODO: צרו Manager עם השם 'Bob', שכר 75000.0, ‏id 102 ו-teamSize 8

  // TODO: צרו Developer עם השם 'Carol', שכר 65000.0, ‏id 103 ו-language 'Dart'

  // TODO: צרו TeamLead עם השם 'David', שכר 80000.0, ‏id 104, ‏language 'Python' ו-projectCount 3

  // TODO: הדפיסו את getDetails() עבור כל עובד, אחד בכל שורה
}

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Dart אונליין