Ir ao conteúdo
  • Cadastre-se
Gabriel Ryan

Metodos acessores gets e sets

Recommended Posts

Olá pessoal tudo bem? Bom..Eu tenho uma duvida sobre estes métodos, pois assim...Quais são os benefícios dos Gets e Sets? pelo que li é segurança mas se nomeamos atributos privados e usamos esses métodos assessores para manipula-los fora da classe, qual é a segurança que estamos tendo? já que de qualquer forma estaríamos mexendo no atributo em si só que por meio do método...Por exemplo:

 

private String nome;

 

  public void setNome (String n) {

  this.nome = n;

  }

 

  public String getNome () {

   return this.nome;

  }

 

 

 

 

De qualquer modo chamando o método nós estaríamos modificando o atributo, então qual é a vantagem dos gets e sets? já que se usarmos um "this.nome = "x" " Resulta no mesmo do que um this.setNome("x") pois estaríamos modificando da mesma forma o atributo...Por que usar gets e sets?

Editado por Gabriel Ryan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto é um dos conceitos de POO: Encapsulamento.

 

O principal objetivo não é segurança, mas sim a separação dos conceitos de atributos e comportamentos de um objeto.

 

São diversos benefícios, mas também representa algum inconveniente adicional, o importante é não considerar este inconveniente como um problema, mas sim um caminho a ser seguido para um bom desenho de classes.

 

Para exemplificar, vamos pegar a sua questão:

- qual a diferença entre obj.nome = "x" e obj.setNome("x")?

No primeiro caso você está manipulando um atributo de um objeto, enquanto no segundo você está utilizando um comportamento definido do objeto. O conceito de encapsulamento define que você não precisa conhecer os atributos de um objeto, você precisa apenas utilizar seus comportamentos. Então imagine que seu objeto possua 2 atributos para a definição de nome: "primeiroNome" e "sobrenome", não é sua responsabilidade conhecer ou controlar isto, você apenas precisa conhecer o comportamento de definir nome: "obj.setNome(nome)", o resto é responsabilidade do próprio objeto.

 

É claro, não leve o exemplo ao pé da letra, existem situações e situações. Eu também utilizei "obj." ao invés de "this." pois o this representa o próprio objeto, o que foge do conceito de encapsulamento.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 09/09/2016 às 12:39, Cweiler disse:

Isto é um dos conceitos de POO: Encapsulamento.

 

O principal objetivo não é segurança, mas sim a separação dos conceitos de atributos e comportamentos de um objeto.

 

São diversos benefícios, mas também representa algum inconveniente adicional, o importante é não considerar este inconveniente como um problema, mas sim um caminho a ser seguido para um bom desenho de classes.

 

Para exemplificar, vamos pegar a sua questão:

- qual a diferença entre obj.nome = "x" e obj.setNome("x")?

No primeiro caso você está manipulando um atributo de um objeto, enquanto no segundo você está utilizando um comportamento definido do objeto. O conceito de encapsulamento define que você não precisa conhecer os atributos de um objeto, você precisa apenas utilizar seus comportamentos. Então imagine que seu objeto possua 2 atributos para a definição de nome: "primeiroNome" e "sobrenome", não é sua responsabilidade conhecer ou controlar isto, você apenas precisa conhecer o comportamento de definir nome: "obj.setNome(nome)", o resto é responsabilidade do próprio objeto.

 

É claro, não leve o exemplo ao pé da letra, existem situações e situações. Eu também utilizei "obj." ao invés de "this." pois o this representa o próprio objeto, o que foge do conceito de encapsulamento.

 

 

 

Muito obrigado pela explicação, me ajudou muito !!!

Editado por Gabriel Ryan

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×