Gett and Sett Java

9 respostas Resolvido
java
O

Olá Meus caros tudo bem?

Me tirem uma dúvida,

Eu criei uma classe com o nome pessoas e seus atributos Nome e CPF.

Como faço para que os métodos dentro da classe tenha acesso aos atributos apenas pelos métodos geter e seter e não permitir acessar o atribuo a não ser pelos metodos?

9 Respostas

L

Dentro da mesma classe não dá (e nem precisa). O encapsulamento é para impedir que outras classes acessem propriedades de forma indevida (para atender alguma regra, por exemplo).

O

Perfeito entendi,

Bom é que nesse caso o get é apenas para resgatar os valores fora da classe né?

Pois dentro da classe ele não tem nenhuma serventia certo?

L
Solucao aceita

Exato!

O

Maravilha rsrs,

Estou repassando um estudo que já fiz em java lá em 2020, ai só para recapitular os assuntos.

Volta e meia sai uma pergunta kkk

L

Vc está correto, e isso não se prende apenas em java, mas na orientação à objetos no geral, independente da linguagem.

O

Então rsrs,

Estou tentando pegar bem a POO pois é bem utilizada na linguagem.

L

Um exemplo de uso para o encapsulamento mais simples é assim:

Em vez de só criar um método set que atribui um nome à uma pessoa, seria mais interessante criar um método que indique melhor o que será feito e já tratando algumas coisas, ex.:

public class Pessoa {
  private String nome;

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

  public void alterarNome(String novoNome) {
    if (novoNome == null || "".equals(novoNome)) {
      throw new IllegalArgumentException("Novo nome informado não é valido!");
    }

    if (novoNome.length() < 3) {
      throw new IllegalArgumentException("Novo nome deve ter pelo menos 3 letras!");
    }

    this.nome = novoNome;
  }
}

E ao usar:

Pessoa pessoa = new Pessoa();

pessoa.alterarNome(""); // erro pois não é um nome válido

pessoa.alterarNome("Lu"); // erro pois possui menos do que 3 letras

pessoaRepository.save(pessoa); // não vai salvar pq caiu nas validações

Dessa forma, em todo o sistema, qualquer funcionalidade que for alterar o nome de uma Pessoa, irá passar pelas mesmas validações para garantir que a pessoa tenha um nome de acordo com as regras.

O

Então, lembra aquela ajuda que pedi para você sobre as requisições do PK PARTIC então tentei implementar ela em Java, para praticar a orientação a objetos e conhecer um pouco mais dos recursos.

Segue o link postado no github

Depois se você quiser dar uma olhada e sugerir alguma melhoria em questão de sintaxe ou algo do tipo, sou aberto a sugestões.

Pois num futuro não tão distante pretendo trabalhar só com java rsrs

O

Gostei dessa sugestão rsrs

Criado 16 de fevereiro de 2022
Ultima resposta 17 de fev. de 2022
Respostas 9
Participantes 2