Menu
Coddy logo textTech

Podsumowanie – hierarchia pracowników

Część sekcji Programowanie obiektowe ścieżki Java w Coddy. Lekcja 27 z 87.

challenge icon

Wyzwanie

Łatwy

Zbudujmy kompletny system hierarchii pracowników, który łączy wszystkie pojęcia związane z dziedziczeniem z tego rozdziału. Utworzysz strukturę firmy, w której różne typy pracowników mają wspólne atrybuty, ale też własne, wyspecjalizowane zachowania.

Rozmieścisz swój kod w czterech plikach:

  • Employee.java: Utwórz klasę bazową wspólną dla wszystkich pracowników. Każdy pracownik ma imię i wynagrodzenie. Dodaj konstruktor, który inicjalizuje oba pola, oraz metodę getDetails(), która zwraca: [name] earns $[salary]. Dodaj też metodę work(), która wypisuje: [name] is working.
  • Manager.java: Utwórz klasę dziedziczącą po Employee. Menedżerowie mają dodatkowe pole teamSize, określające liczbę osób, którymi zarządzają. Użyj super, aby obsłużyć inicjalizację klasy nadrzędnej. Nadpisz metodę work(), aby wypisywała: [name] is managing a team of [teamSize]. Dodaj metodę getManagerDetails(), która zwraca: Manager: [name] earns $[salary], Team size: [teamSize].
  • Developer.java: Utwórz kolejną klasę dziedziczącą po Employee. Deweloperzy mają pole language określające ich specjalizację programistyczną. Ponownie użyj super do obsługi części dotyczącej klasy nadrzędnej. Nadpisz metodę work(), aby wypisywała: [name] is coding in [language]. Dodaj metodę getDeveloperDetails(), która zwraca: Developer: [name] earns $[salary], Language: [language].
  • Main.java: Połącz tutaj wszystkie elementy. Otrzymasz pięć danych wejściowych: imię pracownika, wynagrodzenie, wielkość zespołu menedżera, kolejne imię oraz język programowania dewelopera. Utwórz obiekt Manager i obiekt Developer, a następnie dla każdego z nich wywołaj najpierw jego wyspecjalizowaną metodę zwracającą szczegóły, a potem metodę work().

Otrzymasz pięć danych wejściowych w następującej kolejności: imię menedżera (String), wynagrodzenie menedżera (double), wielkość zespołu (int), imię dewelopera (String) oraz język programowania (String). Ustaw wynagrodzenie dewelopera na 75000.0.

Formatuj wszystkie wartości wynagrodzenia do 2 miejsc po przecinku za pomocą String.format("%.2f", salary). Wynik powinien składać się łącznie z czterech wierszy — szczegółów menedżera i informacji o jego pracy, a następnie szczegółów dewelopera i informacji o jego pracy.

Spróbuj swoich sił

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Wczytaj dane wejściowe
        String managerName = scanner.nextLine();
        double managerSalary = scanner.nextDouble();
        int teamSize = scanner.nextInt();
        scanner.nextLine(); // pobierz znak nowej linii
        String developerName = scanner.nextLine();
        String language = scanner.nextLine();
        
        // Wynagrodzenie programisty jest ustalone na 75000.0
        double developerSalary = 75000.0;
        
        // TODO: Utwórz obiekt Manager z managerName, managerSalary i teamSize
        
        // TODO: Utwórz obiekt Developer z developerName, developerSalary i language
        
        // TODO: Wyświetl szczegóły menedżera za pomocą getManagerDetails()
        
        // TODO: Wywołaj metodę work() menedżera
        
        // TODO: Wyświetl szczegóły programisty za pomocą getDeveloperDetails()
        
        // TODO: Wywołaj metodę work() programisty
    }
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Java online