Uso do get e do set

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

[code]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.");
    }
       
[/code]

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

[code]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;
}
}
[/code]

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

[code]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();
    

 
   
}
}

[/code]
Obrigado pela ajuda … abraços a todos!

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!

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);
       
       }

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!

Obrigado pela ajuda !

Abraços!