Menu
Coddy logo textTech

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

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Java של Coddy. שיעור 27 מתוך 87.

challenge icon

אתגר

קל

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

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

  • Employee.java: צרו מחלקת בסיס המשותפת לכל העובדים. לכל עובד יש שם ומשכורת. הוסיפו בנאי שמאתחל את שני השדות ומתודה getDetails() שמחזירה: [name] earns $[salary]. הוסיפו גם מתודה work() שמדפיסה: [name] is working.
  • Manager.java: צרו מחלקה שיורשת מ-Employee. למנהלים יש שדה נוסף, teamSize, שמייצג כמה אנשים הם מנהלים. השתמשו ב-super כדי לטפל באתחול המחלקה ההורה. דרסו את המתודה work() כך שתדפיס: [name] is managing a team of [teamSize]. הוסיפו מתודה getManagerDetails() שמחזירה: Manager: [name] earns $[salary], Team size: [teamSize].
  • Developer.java: צרו מחלקה נוספת שיורשת מ-Employee. למפתחים יש שדה language המציין את ההתמחות שלהם בתכנות. שוב, השתמשו ב-super עבור החלק של מחלקת ההורה. דרסו את work() כך שתדפיס: [name] is coding in [language]. הוסיפו מתודה getDeveloperDetails() שמחזירה: Developer: [name] earns $[salary], Language: [language].
  • Main.java: חברו כאן את כל החלקים. תקבלו חמש קלטים: שם של עובד, משכורת, גודל הצוות של המנהל, שם נוסף ושפת תכנות עבור המפתח. צרו Manager ו-Developer, ואז קראו עבור כל אחד מהם למתודת הפרטים הייעודית שלו ולאחר מכן למתודה work().

תקבלו חמישה קלטים בסדר הבא: שם המנהל (String), משכורת המנהל (double), גודל הצוות (int), שם המפתח (String) ושפת התכנות (String). השתמשו במשכורת 75000.0 עבור המפתח.

עצבו את כל ערכי המשכורת עם 2 ספרות אחרי הנקודה העשרונית באמצעות String.format("%.2f", salary). הפלט שלכם צריך לכלול ארבע שורות בסך הכול — פרטי המנהל והתנהגות העבודה שלו, ולאחר מכן פרטי המפתח והתנהגות העבודה שלו.

פורמט הפלט הנדרש:

נסו בעצמכם

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // קרא את הקלטים
        String managerName = scanner.nextLine();
        double managerSalary = scanner.nextDouble();
        int teamSize = scanner.nextInt();
        scanner.nextLine(); // קלוט את תו ירידת השורה
        String developerName = scanner.nextLine();
        String language = scanner.nextLine();
        
        // השכר של Developer קבוע ועומד על 75000.0
        double developerSalary = 75000.0;
        
        // TODO: צור אובייקט Manager עם managerName, managerSalary ו-teamSize
        
        // TODO: צור אובייקט Developer עם developerName, developerSalary ו-language
        
        // TODO: הדפס את פרטי המנהל באמצעות getManagerDetails()
        
        // TODO: קרא למתודה work() של המנהל
        
        // TODO: הדפס את פרטי המפתח באמצעות getDeveloperDetails()
        
        // TODO: קרא למתודה work() של המפתח
    }
}

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

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