Menu
Coddy logo textTech

Recapitulação - Hierarquia de Funcionários

Parte da seção Programação Orientada a Objetos do Journey de Java da Coddy — lição 27 de 87.

challenge icon

Desafio

Fácil

Vamos construir um sistema completo de hierarquia de funcionários que reúne todos os conceitos de herança deste capítulo. Você criará uma estrutura de empresa onde diferentes tipos de funcionários compartilham atributos comuns, mas possuem seus próprios comportamentos especializados.

Você organizará seu código em quatro arquivos:

  • Employee.java: Crie a classe base que todos os funcionários compartilham. Todo funcionário tem um nome e um salário. Inclua um construtor que inicialize ambos os campos e um método getDetails() que retorna: [name] earns $[salary]. Também adicione um método work() que imprime: [name] is working.
  • Manager.java: Crie uma classe que estende Employee. Os gerentes têm um campo adicional teamSize representando quantas pessoas eles gerenciam. Use super para lidar com a inicialização do pai. Sobrescreva o método work() para imprimir: [name] is managing a team of [teamSize]. Adicione um método getManagerDetails() que retorna: Manager: [name] earns $[salary], Team size: [teamSize].
  • Developer.java: Crie outra classe que estende Employee. Os desenvolvedores têm um campo language para sua especialidade de programação. Novamente, use super para a parte do pai. Sobrescreva work() para imprimir: [name] is coding in [language]. Adicione um método getDeveloperDetails() que retorna: Developer: [name] earns $[salary], Language: [language].
  • Main.java: Reúna tudo aqui. Você receberá cinco entradas: um nome de funcionário, salário, tamanho da equipe para o gerente, outro nome e uma linguagem de programação para o desenvolvedor. Crie um Manager e um Developer, então, para cada um, chame seu método de detalhes especializado seguido pelo seu método work().

Você receberá cinco entradas nesta ordem: nome do gerente (String), salário do gerente (double), tamanho da equipe (int), nome do desenvolvedor (String) e linguagem de programação (String). Use um salário de 75000.0 para o desenvolvedor.

Formate todos os valores de salário com 2 casas decimais usando String.format("%.2f", salary). Sua saída deve mostrar quatro linhas no total - os detalhes e o comportamento de trabalho do gerente, seguidos pelos detalhes e o comportamento de trabalho do desenvolvedor.

Experimente você mesmo

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Ler as entradas
        String managerName = scanner.nextLine();
        double managerSalary = scanner.nextDouble();
        int teamSize = scanner.nextInt();
        scanner.nextLine(); // consumir a quebra de linha
        String developerName = scanner.nextLine();
        String language = scanner.nextLine();
        
        // O salário do desenvolvedor é fixado em 75000.0
        double developerSalary = 75000.0;
        
        // TODO: Criar um objeto Manager com managerName, managerSalary e teamSize
        
        // TODO: Criar um objeto Developer com developerName, developerSalary e language
        
        // TODO: Imprimir os detalhes do gerente usando getManagerDetails()
        
        // TODO: Chamar o método work() do gerente
        
        // TODO: Imprimir os detalhes do desenvolvedor usando getDeveloperDetails()
        
        // TODO: Chamar o método work() do desenvolvedor
    }
}

Todas as lições de Programação Orientada a Objetos