Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rébinho

Métodos Getters e Setters

Recommended Posts

Olá galera minha dúvida é simples... Comecei a estudar sobre métodos Get e Set.

 

Quero saber se método Set é somente quando atribui valor a um atributo ou não, pode fazer mais coisas? E método get quando pega (retorna) apenas um atributo?

 

Por exemplo... se tiver várias coisas que meu método faça, pode ser definido como set?

Tipo:

public void setExemplo(int num1, int num2){
   this.valor1= num1;
   this.valor2= num2;
   this.result= (num1 * num2);
}//Isso poderia ser um método Set?

public String getExemplo(String msg1, String msg2){
   this.mensagem1 = msg1;
   this.mensagem2 = msg2;
   return msgFinal = (msg1 + msg2);
}//Isso poderia ser um método Get

 

Bom acho que deu pra explicar a dúvida... Sei como funciona mais ou menos, minha dúvida é se pode apenas fazer uma ou várias tarefas sendo o método Set ou Get.

 

Valeu abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eles são usados pra controlar acesso aos atributos da sua classe. Você pode sim fazer "mais coisas" (por exemplo quando a mudança do valor de algum atributo demandar a atualização de outro que depende deste). A recomendação que eu faço é que você sempre use sets pra mudar seus valores:

 

public void setFoo(String bar)
{
   // setar o valor
   this.foo = bar;
   // precisamos atualizar o atributo "att" desta insância
   this.att += ", " + bar;
}

 

Como disseram acima, getters devem retornar um valor de mesmo tipo do atributo a ser acessado.

 

Discordo do post acima quanto aos seters. Nada impede que retornem valores informativos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Discordo do post acima quanto aos seters. Nada impede que retornem valores informativos.

 

Que post acima? :P :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu utilizo o get apenas para retornar o valor e o set para alterar o valor de um atributo da classe.

O padrão é que o nome do método seja o get ou set, mais o nome do atributo por exemplo:

 

public class Classe {
  private int valor;

  public int getValor() {
     return this.valor;
  }
  public void setValor(int novoValor) {
     this.valor = novoValor;
  }
}

 

Eu acredito que nós temos que saber o que o método faz apenas lendo o seu nome, por isso eu penso que o get só deve retornar o valor e o set apenas alterar o valor do atributo. Imagina que você ta vendo um código feito por outra pessoa e que ele faz alguma operação dentro dos métodos get e set. Pra tu entender o código, vai ter que entrar em todos os métodos get e set pra ver o que ele faz lá. E se algum momento tu só quiser pegar o valor? O algoritmo que estiver lá dentro também vai ser executado.

 

No teu primeiro exemplo, o correto seria criar um outro método só para executar a soma. Como o nome do método diz, tu tá "setando" os valores, não tem que somar nada ali.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com o Lucas Tomasi, por convenção os métodos get e set somente retorna ou seta o valor de um atributo, mas isso é CONVENÇÃO, nada impede você de fazer...

 

EU não faço... pois quando outra pessoa utilizar uma de minhas classes vai ver por exemplo o método setValor e vai saber que ela seta uma valor, e não seta um valor e faz um calculo, para isso crio outro metodo...

 

o que eu faço é +- assim

private int num1;
   private int num2;

   public int getNum1() {
       return num1;
   }

   public int getNum2() {
       return num2;
   }

   public void setNum1(int num1) {
       this.num1 = num1;
   }

   public void setNum2(int num2) {
       this.num2 = num2;
   }

   public int soma(){
       return num1+num2;
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.