Uso do get e do set

4 respostas
A

Boa tarde galera !

Estou seguindo os exercicios da apostila da caelum ate entao tudo ok.
porem notei que os metodos que eu usei GET nao estao retornando o valor desejado e ate onde olhei esta tudo declarado corretamente
Alguem pode me da um help?

abaixo esta todo o codigo da minha classe funcionario
eu uso os metodos setnome_func e setSalario para definir o nome dos funcionarios e o seu salario
porem quando uso o metodo getnome_func e getSalario assim que compilo ele nao me retorna o que foi setado anteriormente

public class Funcionario {

   String nome_func;
   String departamento;
   double salario;
   String dat_entrada;
   String rg;
   boolean ativo=true;
    
    boolean bonifica (double valor){
        this.salario= this.salario* valor;
        return true;
    }
    
    boolean demissao(){
        if (ativo=true){
           this.ativo=false;
           System.out.println("Funcionario " + this.nome_func + " acaba de ser demitido!");
           return true;
     }else{
            System.out.println("Funcionario ja foi demitido.");
            return false;
        }
    }
    
   public void setnome_func(String nome){
        this.nome_func=nome;
    }
    
   public String getnome_func(){
    return this.nome_func;
}

   public double setSalario(double valor){
       return this.salario=valor;
   }
   public double getSalario(){
       
       return this.salario;
       
       }
   
    void verifica_ativo() {
        if(this.ativo==false){
            System.out.println("Funcionario nao faz mais parte da empresa.");
       }else{
            System.out.println("Funcionario devidamente empregado na empresa.");
        }

aqui tem a classe gerente que eu criei e usei o extends para herdar os atributos da classe funcionario

public class Gerente extends Funcionario {
    
    int senha;
    
    public int setSenha(int Senha){
        return this.senha=Senha;
    }
    
   boolean Confirm_senha(int senha){
       if(this.senha==senha){
       System.out.println("Acesso permitido!");
       return true;
   }else{
           System.out.println("Senha incorreta! Acesso negado.");
           return false;
       }
   }

e aqui temos o Main onde criei um gerente e tentei testar os metodos

public class Banco {

    public static void main(String[] args) {
                
        Conta[] contas = new Conta[3];  
        Conta conta1 = new Conta();
        Conta conta2 =new Conta();
                
        contas[0]=conta1;
        contas[1]=conta2;
        
        Funcionario[] func =new Funcionario[3];
        Funcionario f1=new Funcionario();
       
        func[0]=f1;
        
        Gerente gerente = new Gerente();

        gerente.setnome_func("Andre lopes");
        gerente.setSenha(123456);
        gerente.setSalario(5000);
        
        gerente.getnome_func();
        gerente.getSalario();
        
    
     
       
    }
    }
Obrigado pela ajuda .. abraços a todos!

4 Respostas

angeliski

Cara, euy testei aqui e não tem problema nenhum. o get retorna certo.

Acho que você deve estar imaginando que quando você usar o getnome_func() ele vá imprimir no console “AUTOMATICAMENTE”, isso não ocorre. Pra gerar essa impressão, seria assim:

System.out.println(gerente.getnome_func());  
        System.out.println(gerente.getSalario());

o metodo get serve para “buscar” o valor de determinado atributo, e o set para colocar um valor nesse atributo. você quem tem de imprimir eles no console atraves do
System.out.println();

Outra coisa, eu aconselho você a não usar nome de atributos assim: nome_func, seria mais correto nomeFunc,e se formos até um clean code seria melhor ainda usar um:
nomeFuncionario. Mas isso é só perfumaria de boas praticas, nao altera em nada o funcionamento.

Abraço!

A

Valeu pela ajuda !

eu estava justamente nessa logica tanto e que antes de eu recorrer ao forum bati mais um pouco de cabeça aqui e o codigo antes era assim:

public String getmostranome_func(){ return System.out.println(this.nome_func); }

porem em return System… ficava marcado como erro de incompartibilidade de tipos

depois da sua ajuda eu tirei o get e deixei assim :
ate entao ele esta me retornando o valor perfeitamente.

void mostraSalario(){
       
       System.out.println(this.salario);
       
       }
angeliski

Uma pratica muito comum é nao colocar “coisas” no get e set. o GET retorna o valor, o SET atribui o valor, os Systems da vida, você joga no codigo e tal.
Qualquer duvida disponha.

Abraço!

A

Obrigado pela ajuda !

Abraços!

Criado 21 de abril de 2012
Ultima resposta 21 de abr. de 2012
Respostas 4
Participantes 2