Rébinho 0 Denunciar post Postado Maio 27, 2011 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
guidjos 65 Denunciar post Postado Maio 27, 2011 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
Vergil 15 Denunciar post Postado Maio 28, 2011 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
Lucas Tomasi 0 Denunciar post Postado Maio 29, 2011 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
Lucas Merencia 0 Denunciar post Postado Junho 21, 2011 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