Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - هيكلية الموظفين

جزء من قسم Object Oriented Programming في رحلة Java على Coddy — الدرس 27 من 87.

challenge icon

التحدي

سهل

لنقم ببناء نظام تسلسل هرمي كامل للموظفين يجمع بين جميع مفاهيم الوراثة من هذا الفصل. ستقوم بإنشاء هيكل شركة حيث تشترك أنواع مختلفة من الموظفين في سمات عامة ولكن لديهم سلوكياتهم المتخصصة.

ستقوم بتنظيم الكود الخاص بك عبر أربعة ملفات:

  • Employee.java: قم بإنشاء الفئة الأساسية التي يشترك فيها جميع الموظفين. كل موظف لديه اسم وراتب. قم بتضمين منشئ (constructor) يقوم بتهيئة كلا الحقلين وطريقة getDetails() التي تعيد: [name] earns $[salary]. أضف أيضاً طريقة work() التي تطبع: [name] is working.
  • Manager.java: قم بإنشاء فئة ترث من Employee. لدى المديرين حقل إضافي teamSize يمثل عدد الأشخاص الذين يديرونهم. استخدم super للتعامل مع تهيئة الفئة الأب. قم بعمل override للطريقة work() لتطبع: [name] is managing a team of [teamSize]. أضف طريقة getManagerDetails() التي تعيد: Manager: [name] earns $[salary], Team size: [teamSize].
  • Developer.java: قم بإنشاء فئة أخرى ترث من Employee. لدى المطورين حقل language لتخصصهم البرمجي. مرة أخرى، استخدم super لجزء الفئة الأب. قم بعمل override لـ 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 للمطور.

قم بتنسيق جميع قيم الرواتب بمنزلتين عشريتين باستخدام 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();
        
        // راتب المطور ثابت عند 75000.0
        double developerSalary = 75000.0;
        
        // TODO: قم بإنشاء كائن Manager باستخدام managerName و managerSalary و teamSize
        
        // TODO: قم بإنشاء كائن Developer باستخدام developerName و developerSalary و language
        
        // TODO: اطبع تفاصيل المدير باستخدام ()getManagerDetails
        
        // TODO: استدعِ دالة ()work الخاصة بالمدير
        
        // TODO: اطبع تفاصيل المطور باستخدام ()getDeveloperDetails
        
        // TODO: استدعِ دالة ()work الخاصة بالمطور
    }
}

جميع دروس Object Oriented Programming