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

Como utilizar o método void mostra (){

Bom dia,

Se eu tiver vários funcionários, tem como utilizar o método mostra para diminuir o código?

void mostra (){ System.out.println ("Nome: " + this.nome); System.out.println ("Rg: " + this.rg); System.out.println ("Salário atual: " + this.salario); System.out.println ("Departamento: " +this.departamento); System.out.println("Ganho Anual: R$ " +this.calculaGanhoAnual()); }

Grato

3 respostas

Sim, e você também poderia usar o método toString() e sobrescreve-lo em sua Classe.

   @Override
   public String toString(){
       return "Nome" + this.nome + "Salário atual : " + this.salario ;
   }

E no final quando você fosse mostrar isto, é so chamar o método no seu Main. system.out.println(funcionario.toString());

solução!

Olá Fernando,

Como mostra() é um método da classe Funcionário, o sentido dele é mostrar os dados daquele funcionário apenas. Não teria muito sentido programa um método dentro de UM Funcionário, para mostrar os dados de vários.

Isso terá sentido em um outro objeto que trabalhe com uma lista de Funcionários, por exemplo. Para podermos demonstrar, vamos imaginar que sua classe Funcionário faz sua impressão através do método toString() conforme citado pelo Marcos acima. Você também tem um objeto chamado Impressora, e esse objeto tem um método imprimir(). A classe Impressora recebe uma lista de qualquer objeto e a imprime no console através deste método (não se preocupe com Construtor, List, toString() entre outros, foque em entender o contexto, mais pra frente nos cursos de Java você aprenderá sobre Construtores, Coleções, etc. e vai entender os detalhes técnicos). Como seria esse método, que serviria para imprimir vários objetos (e funcionários também) como você perguntou? Vamos ver:

class Impressora {

    List<Object> lista = null;

    public Impressora (List<Object> lista) {
        this.lista = lista;    
    }

    // o método que nos interessa
    public void imprimir() {
        if (this.lista != null && !this.lista.isEmpty()) {
            for (int i = 0; i < this.lista.size(); i++) {
                System.out.println(lista.get(i).toString());
            }
        }
    }
}

class TesteImpressora {

    //escreva esta classe para testar, instancie a classe Impressora, crie alguns Funcionarios e coloque na lista, depois chame o imprimir:

    //não esqueça de declarar o método main

    Funcionario f1 = new Funcionario();
    f.setNome("Joao");
    ...
    ...

    Funcionario f2 = new Funcionario();
    f2.setNome("Maria");
    ...
    ...

    List<Funcionario> listaFuncionarios = new ArrayList<>();

    listaFuncionarios.add(f1);
    listaFuncionarios.add(f2);

    Impressora impressora = new Impressora(listaFuncionarios);
    impressora.imprimir();
}

Com isso você fez uso de uma estrutura de repetição (laço) chamada for, e com ele conseguiu percorrer uma estrutura que guardava vários Objetos, neste caso Funcionários, e imprimiu os valores de cada um através do toString().

Espero ter ajudado, qualquer dúvida só perguntar.

Abraços.

Obrigado Emerson e Marcos. Ainda tenho dificuldade em alguns conceitos do Java, as explicações ajudaram a formar o entendimento.