Get/Set

4 respostas
williamdasflores

Bom Dia!

Comecei a ter aula de java na facu, porem não estou entendendo o que é, e pra que serve os get/set encapsulamento de dados.
Alguém poderia me ajudar?

4 Respostas

polianomartini

http://www.guj.com.br/posts/list/132127.java

Aqui no Guj tem vários tópicos à respeito já.

guisantogui

Começando o encapsulamento serve para a classe que os possui poder visualiza-los e usa-los!

o metodo set, serve para alterar o dado do atributo

ex

public void setNome(String novoNome){ nome = novoNome; }

e o get seria se vc precisa pegar o dado do atributo

public String getNome(){ return nome; }

B

Encapsulamento de dados é controlar o estado interno do teu objeto, fazendo que somente o objeto possa mudar seu próprio estado, e que se alguem quiser mudar, tem que falar com o objeto primeiro.

No caso, se tivesse:
class Pessoa {
   public int idade;
}
Qualquer um de fora poderia mudar a idade da pessoa para um estado inválido.
Pessoa joao = new Pessoa();
joao.idade = -5;
Com métodos acessores:
class Pessoa {
  private int idade;

  public int getIdade() {
     return this.idade;
  }

  public void setIdade(int idade) {
     if (idade < 0)
       throw new IllegalArgumentException("A idade deve ser maior ou igual a zero.");

     if (idade >= 150)
       throw new IllegalArgumentException("A idade deve ser menor que 150 anos.");

     this.idade = idade;
  }
}
Dessa forma, idade só pode ter um valor entre 0 e 149.

E avisando, se você não controla o estado do teu objeto, não tem muito sentido fazer getters e setters para ele. É até complicado quando um terceiro te obriga a fazer isto.

renanreismartins

post legal sobre o assunto http://www.guj.com.br/posts/list/23431.java

abrasss

Criado 15 de abril de 2010
Ultima resposta 15 de abr. de 2010
Respostas 4
Participantes 5