Metodo mostra [Resolvido]

Boa noite pessoal , estou com uma duvida, na qual estou confuso com a mesma … Onde no exercicio pede para criar um metodo mostra () , que nao devolva parametro algum e simplesmente imprime todos os atributos do funcionario até ai esta tranquilo , a duvida é no exercicico diz que usando este metodo nao será preciso colar um monte de System.out.println (), abaixo segue o trecho do codigo com uma inserção do atributo nome e rodou ,agora como imprimir todos os atributos sem colocar o comando para imprimir Lembrando que inseri no codigo esta linha f1.mostra();

void mostra (){
  System.out.println("Nome:"+ this.nome);
}

Bom, vejo basicamente duas formas de fazer isto, a primeira é

import static java.lang.System.out;
public class teste {
    public static void main(String[] args){
        mostra("Um Número", 0);
        mostra("Um character", 'a');
        mostra("Uma String", "um texto");
    }
    
    static void mostra(String texto, Object o){
        //aqui você pode avaliar a necessidade de validar o objeto recebido
            out.println(texto + ": " + o); 
    }
}

ou a a outra é simplesmente

mostra(){
    System.out.println("texto1: " + <variavel A> + "\nTexto2: " + <variavel B>);
}

O segredo está em conhecer o método toString, este método pode ser sobrescrito para retornar uma String que “represente” o objeto…

veja um exemplo, repare que o metodo toString está sobrescrito em Funcionario:

[code]package A;

public class Funcionario {

private String nome;
private String cargo;
private String crm;

public final String getNome() {
	return nome;
}

public final void setNome(String nome) {
	this.nome = nome;
}

public final String getCargo() {
	return cargo;
}

public final void setCargo(String cargo) {
	this.cargo = cargo;
}

public final String getCrm() {
	return crm;
}

public final void setCrm(String crm) {
	this.crm = crm;
}
public void mostra(){
	System.out.println(this);
}

@Override
public String toString() {
	return "[ "+"nome: "+nome+", cargo: "+cargo+", crm :" +crm+" ]";
}

}
[/code]

classe de Teste:

[code]package A;

public class TestaFuncionario {
public static void main(String[] args) {
Funcionario f = new Funcionario();
f.setNome(“claudemir ribeiro”);
f.setCargo(“Progamador Java(a tecnologia do século”);
f.setCrm(“12345”);
f.mostra();
}

}
[/code]

A saída é:

[ nome: claudemir ribeiro, cargo: Progamador Java(a tecnologia do século, crm :12345 ]

Veja que se chamar na sua classe de Teste a linha abaixo o efeito será o mesmo:

System.out.println(f);

Veja mais informações neste post aqui mesmo no guj:

Espero ter ajudado:

Boa noite pessoal… Mesmo depois das dicas citadas nao estou conseguindo entender de fato como utilizar este metodo toString(na apostila diz que veremos este metodo mais a frente), estou confuso, gostaria se possivel de sanar as duvidas de acordo como se pede na primeira postagem, assim posso seguir passo a passo , e entender melhor .Segue o codigo onde estou inserindo no metodo o atributo nome e está rodando ! Estou testando passo a passo observa-se que em alguns trechos do codigo esta com comentario , justamente para nao me confundir.
Grato!


class Funcionario{           
    String nome;       
    //String departamento;       
    //double salario;       
    //String dataEntrada;       
    //String rg;       
    //boolean ativo;       
    //double aumento;       
    //double bonificacao;
             
   //public double bonificacao(double aumento){       
       //return this.salario + aumento;       
   //}  
   //public  boolean demite() { 
        //return ativo = false; 
   //} 
   void mostra (){
	  System.out.println("Nome:"+ this.nome);
   }
}
 class TestaFuncionario{  
    public static void main(String [] args){
    
     Funcionario f1 = new Funcionario();
     
     f1.nome = "Eduardo";
     //f1.departamento ="TI";
     //f1.salario = 120.00;
     //f1.dataEntrada = "120312";
     //f1.rg = "1123456";
     //f1.bonificacao = (50);
     //f1.ativo = true;
     //f1.aumento = f1.salario+f1.bonificacao;
     f1.mostra();
     
     //double salario = f1.bonificacao(50);
     
     /*
     System.out.println("O nome do funcionario:"+f1.nome);
     System.out.println("Departamento:"+f1.departamento);
     System.out.println("Salario Atual :"+f1.salario);
     System.out.println("Data da Entrada:"+f1.dataEntrada);
     System.out.println("RG:"+f1.rg);
     System.out.println("Bonificacao;"+f1.bonificacao);
     System.out.println("Funcionário ativo:"+f1.ativo);
     System.out.println("Seu novo salário é: "+salario);
     System.out.println("O funcionario não trabalha mais aqui !!!"); 
    */ 
  } 
   
 }

Deixa eu ver se entendi sua duvida. Você quer exibir todos esses atributos:

String nome;
//String departamento;
//double salario;
//String dataEntrada;
//String rg;
//boolean ativo;
//double aumento;
//double bonificacao;

Em apenas uma instrução

System.out.println() do metodo mostra()?

Se for isso faça assim:

System.out.println( "Nome:"+ this.nome + "\nDepartamento: " + this.departamento + "\nSalario: " + this.salario + "\nData de Entrada: " + this.dataEntrada + "\nRG: " + this.rg + "\nAtivo: " + this.ativo + "\nAumento: " + this.aumento + "\nBonificacao: " + this.bonificacao );  

Espero ter ajudado. Abraços

Boa noite Lucas , era isso que estava querendo, exatamente como pede no exercicio muito obrigado … Segue o codigo com as alterações … Aos demais que postaram tambem vou pesquisar sobre as dicas na qual são excelentes para o aprendizado . Obrigado a todos !


class Funcionario{           
    String nome;       
    String departamento;       
    double salario;       
    String dataEntrada;       
    String rg;       
    boolean ativo;       
    double aumento;       
    double bonificacao;
             
   public double bonificacao(double aumento){       
       return this.salario + aumento;       
   }  
   public  boolean demite() { 
      return ativo = false; 
   } 
   void mostra (){
       System.out.println( "Nome:"+ this.nome + "\nDepartamento: " + this.departamento + "\nSalario: " + this.salario + "\nData de Entrada: " + this.dataEntrada + "\nRG: " + this.rg    + "\nAtivo: " + this.ativo + "\nAumento: " + this.aumento + "\nBonificacao: " + this.bonificacao + "\nO funcionario nao trabalha mais aqui !!!" );
   }
}
 class TestaFuncionario{  
    public static void main(String [] args){
    
     Funcionario f1 = new Funcionario();
     
     f1.nome = "Eduardo";
     f1.departamento ="TI";
     f1.salario = 120.00;
     f1.dataEntrada = "120312";
     f1.rg = "1123456";
     f1.bonificacao = (50);
     f1.ativo = true;
     f1.aumento = f1.salario+f1.bonificacao;
     f1.mostra();
     
     double salario = f1.bonificacao(50);
     
  } 
   
 }

De nada. No que puder ajudar, eu ajudo. Abraços.