Menu
Coddy logo textTech

Riepilogo: gerarchia dei dipendenti

Fa parte della sezione Programmazione orientata agli oggetti del percorso Java di Coddy. Lezione 27 di 87.

challenge icon

Sfida

Facile

Costruiamo un sistema completo di gerarchia dei dipendenti che riunisca tutti i concetti di ereditarietà di questo capitolo. Creerai una struttura aziendale in cui diversi tipi di dipendenti condividono attributi comuni, ma hanno comportamenti specializzati propri.

Organizzerai il codice in quattro file:

  • Employee.java: crea la classe base condivisa da tutti i dipendenti. Ogni dipendente ha un nome e uno stipendio. Includi un costruttore che inizializza entrambi i campi e un metodo getDetails() che restituisce: [name] earns $[salary]. Aggiungi anche un metodo work() che stampa: [name] is working.
  • Manager.java: crea una classe che estende Employee. I manager hanno un campo aggiuntivo teamSize che rappresenta quante persone gestiscono. Usa super per gestire l'inizializzazione della classe genitore. Sovrascrivi il metodo work() per stampare: [name] is managing a team of [teamSize]. Aggiungi un metodo getManagerDetails() che restituisce: Manager: [name] earns $[salary], Team size: [teamSize].
  • Developer.java: crea un'altra classe che estende Employee. Gli sviluppatori hanno un campo language per indicare la loro specializzazione di programmazione. Anche in questo caso, usa super per la parte relativa alla classe genitore. Sovrascrivi work() per stampare: [name] is coding in [language]. Aggiungi un metodo getDeveloperDetails() che restituisce: Developer: [name] earns $[salary], Language: [language].
  • Main.java: riunisci qui tutti gli elementi. Riceverai cinque input: il nome di un dipendente, lo stipendio, la dimensione del team del manager, un altro nome e un linguaggio di programmazione per lo sviluppatore. Crea un Manager e un Developer, poi per ciascuno chiama il rispettivo metodo specializzato per i dettagli, seguito dal metodo work().

Riceverai cinque input in quest'ordine: nome del manager (String), stipendio del manager (double), dimensione del team (int), nome dello sviluppatore (String) e linguaggio di programmazione (String). Usa uno stipendio di 75000.0 per lo sviluppatore.

Formatta tutti gli stipendi con 2 cifre decimali usando String.format("%.2f", salary). Il tuo output dovrebbe contenere quattro righe in totale: i dettagli e il comportamento lavorativo del manager, seguiti dai dettagli e dal comportamento lavorativo dello sviluppatore.

Provalo tu

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Leggi gli input
        String managerName = scanner.nextLine();
        double managerSalary = scanner.nextDouble();
        int teamSize = scanner.nextInt();
        scanner.nextLine(); // consuma il carattere di nuova riga
        String developerName = scanner.nextLine();
        String language = scanner.nextLine();
        
        // Lo stipendio del Developer è fissato a 75000.0
        double developerSalary = 75000.0;
        
        // TODO: Crea un oggetto Manager con managerName, managerSalary e teamSize
        
        // TODO: Crea un oggetto Developer con developerName, developerSalary e language
        
        // TODO: Stampa i dettagli del manager usando getManagerDetails()
        
        // TODO: Chiama il metodo work() del manager
        
        // TODO: Stampa i dettagli del developer usando getDeveloperDetails()
        
        // TODO: Chiama il metodo work() del developer
    }
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Java online