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

Dificuldade em entender a lógica - Ex. 2 da Aula 5

Boa noite, quando eu estava fazendo este exercício sobre os gets e sets, eu consegui fazer todos, mas de maneira "mecânica" , pq eu entendi como fazer o código mas não consegui entender como que ele funciona mesmo.

class Funcionario{
  private String nome;
  private String departamento;
  private double salario;
  private Data dataEntrada;
  private String rg;
  private double aumento;

  public String getRg(){
    return this.rg;
  }

  public void setRg(String rg){
    this.rg = rg;
  }

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

Eu não consegui entender como os métodos de set e get vão definir e buscar essa variável "nome". Por exemplo, eu defino o valor do "this.nome" no método setNome, e atualizo ele com o getNome?

2 respostas
solução!

Olá Vinicius,

de um modo bem simples:

utilizamos o get para pegarmos o valor que estiver "dentro" da variável e o set para colocar um valor dentro da variável.

por exemplo: temos uma variável chamada goku na classe funcionario, para colocarmos um valor dentro dessa variável faríamos assim:

public void setGoku(String meuPensamento){
    this.goku= meuPensamento;
  }

Dai se quisermos pegar o valor que existe dentro dessa variável faríamos:

public String getGoku(){
    return this.goku;
  }

Se usamos o comando

Funcionario funcionarioZica = new Funcionario();
funcionarioZica.setGoku("Invencível");

E depois usássemos o comando:

System.out.println(funcionarioZica.getGoku());

iria imprimir na tela: Invencível.

Omiti vários assuntos como encapsulamento e tipo de retorno.

Att,

Olá Vinícius tudo bem?

Então vamos por partes,

para que servem os métodos Get e Set?

R: Quando mudamos o modificador de acesso de um atributo da classe para private a mesma só poderá ser acessada dentro desta mesma classe.

E para quê isso serve?

R: Isso faz com que qualquer classe que necessite acessar esses atributos passem por todas as nossas regras de negócio.

Esse get faz o que exatamente?

O método get irá retornar nosso atributo da classe passando por nossa regra de negócio.

E o set?

O método set serve para inserir dado em nosso atributo da classe passando por todas as nossas regras de negócio.

Então sempre temos que usar esses métodos para que nosso código funcione?

Se usar o atributo private sim, é sempre uma boa prática manter nossos atributos de classe seguros usando o modificador de acesso private e sempre passando por nossas regras de negócio, isso evita acesso indevido ao atributo de nossa classe.

Podemos criar uma função com outro nome que faça o mesmo?

Sim, porém é uma boa prática usar estes nomes get e set, pois é uma convenção da linguagem Java,

Espero ter ajudado e bons estudos,

Atenciosamente,

Renan Lopes