Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvidas para exibir dados e elaboração de método.

class Equipe {

    protected String nomeEquipe;
    protected Funcionario funcionario;

    public String getDados() {

        String texto =  "Eixo: " + this.nomeEquipe + "." + "\n\n";
        texto += funcionario.getDados();

        return texto;
    }

    public String getNomeEquipe() {

        return this.nomeEquipe;

    }

    public void setNomeEquipe(String nome) {

        this.nomeEquipe = nome;

    }

}

class Funcionario extends Equipe {

    protected String nome;
    protected String cargo;
    protected double salario;

    public String getDados() {

        String texto = "Nome: " + this.nome + "." + "\n";
        texto += "Cargo: " + this.cargo + "." + "\n";
        texto += "Salario: " + this.salario + "." + "\n";

        return texto;
    }

    public String getNome() {

        return this.nome;

    }

    public void setNome(String nome) {

        this.nome = nome;

    }

    public String getCargo() {

        return this.cargo;

    }

    public void setCargo(String cargo) {

        this.cargo = cargo;

    }

    public double getSalario() {

        return this.salario;

    }

    public void setSalario(double valor) {

        this.salario = valor;

    }



}

class LiderDeEquipe extends Funcionario {

    //Neste método é passado um funcionário e o valor do aumento como parâmetro.

    public void getDaAumento(Funcionario f, double valorDoAumento) {

        this.Funcionario = f; // Linha apresenta erro.
        this.salario += valorDoAumento;
        System.out.print("O funcionario " + f + ", recebeu um aumento de R$" + valorDoAumento + ".");
    }

}

class TesteEquipeCartoes {

    public static void main(String[] args) {

        Equipe equipe = new Equipe();
        equipe.setNomeEquipe("Meios de Pagamento");

        LiderDeEquipe lider = new LiderDeEquipe();
        lider.setNome("Marcio");
        lider.setCargo("Lider de Equipe");
        lider.setSalario(3000.0);

        Funcionario f1 = new Funcionario();
        f1.setNome("Felipe Palomares");
        f1.setCargo("Analista de Teste Junior");
        f1.setSalario(2500.0);

        Funcionario f2 = new Funcionario();
        f1.setNome("Gilmar Junior");
        f1.setCargo("Aux. de Teste");
        f1.setSalario(1500.0);

        Funcionario f3 = new Funcionario();
        f1.setNome("Osmair Zamana");
        f1.setCargo("Aux. de Teste");
        f1.setSalario(1500.0);

        Funcionario f4 = new Funcionario();
        f1.setNome("Rafael Sena");
        f1.setCargo("Aux. de Teste");
        f1.setSalario(1500.0);

        System.out.print(equipe.getDados()); // Linha apresenta erro. Queria exibir os dados de todos os funcionários.

    }

}

A linha "this.Funcionario = f;", do método "getDaAumento", da classe "LiderDeEquipe" está com erro.

Não estou conseguindo fazer a herança entre as classes "Funcionário" e "Equipe", e criar um método para que exiba os dados de todos os funcionários na classe "Equipe".

Poderiam me ajudar por favor?

Obrigado.

3 respostas
solução!

Oi Osmair

Não tem necessidade você atribuir o this.Funcionario = f no seu getDaAumento. Ficaria mais ou menos assim :

public void getDaAumento(Funcionario f, double valorDoAumento) {

        this.salario += valorDoAumento;
        System.out.print("O funcionario " + f.getNome() + ", recebeu um aumento de R$" + valorDoAumento + ".");
    }

abraço

Eai Caio, beleza?

Agora entendi, deu certo. Achei que deveria apontar "f" pra funcionário e depois chamá-lo.

Não estou conseguindo exibir os dados dos funcionários através de um método "getExibeDados()", por exemplo.

Muito obrigado. Abraço.

Oi Osmair

Para imprimir todos os funcionários, o melhor caminho seria criar uma lista de funcionários, um bom responsável para esse tipo de coisa seria sua classe equipe.

class Equipe {

    protected String nomeEquipe;
   protected List<Funcionarios> funcionarios = new ArrayList<Funcionarios>

    public void exibeDados() {

       System.out.println("Eixo: " + this.nomeEquipe + "." + "\n\n")
    For (Funcionario funcionario: funcionarios){
        System.out.println(funcionario.getNome() // + resto dos dados);
    {        
    }

    public String getNomeEquipe() {

        return this.nomeEquipe;

    }

    public void setNomeEquipe(String nome) {

        this.nomeEquipe = nome;

    }

   public void addFuncionario(Funcionario funcionario){ 
    this.funcionarios.add(funcionario)
  {
}

Conseguiu sacar ?

abraço