|
 | | |
|
| |  |   |  |  | |  |  | |  |  | |  |  | |  | |
 | | | |
Olá, estou começando a estudar o XNA Game Studio, e me vi com uma dúvida!
Eu não entendo muito bem como funcionam os comandos 'get' e 'set' utilizados nos objetos.
Se alguem responder minha dúvida, ficaria muito agradecido.
Desde já, obrigado! |
|
|
|  |  | | |
| Re: duvidas de programação |
|
|
Cloudwsy escreveu
Olá, estou começando a estudar o XNA Game Studio, e me vi com uma dúvida!
Eu não entendo muito bem como funcionam os comandos 'get' e 'set' utilizados nos objetos.
Se alguem responder minha dúvida, ficaria muito agradecido.
Desde já, obrigado! |
Oi Cloudwsy,
Há alguns meses atrás, o nosso amigo Glauber estava com a mesma dúvida que a sua. Ele criou um thread aqui e eu respondi algo lá.
Só reforçando o que escrevi:
Em relação a "esse get/set". Get e Set são métodos!
No mundo OO, todos os campos devem ser privados e devem ser acessados através de métodos publicos. Aonde dentro desses métodos você tem a liberdade de adicionar alguma regra de negócio no momento que algum desses métodos forem chamados.
Quando você ouvir falar sobre o conceito de encapsulamento lembre-se desses métodos Get e Set...
Vamos à um exemplo na linguagem Java aonde não existe esse conceito de propriedades(get/set). Se você quer acessar um atributo da classe vc precisa criar 2 métodos para efetuar as operações de Get ou Set desse atributo.
public class Pessoa{
private int idade;
public int GetIdade(){
return idade;
}
public int SetIdade(int _idade){
this.idade = _idade;
}
}
Tomando a classe pessoa acima, se nós quisessemos adicionar alguma regra de negocio para essa pessoa do tipo: Se essa pessoa é uma mulher então a idade real dela só ela pode saber, e quem for querer conhecer(Get) a idade dela vai saber, entretanto, com 5 anos a menos que a idade real. Então a gente poderia ter o método Get assim:
public int GetIdade(){
return idade + 5;
}
Isso tudo foi em Java, em C# é semelhante, só que a gente nao precisa criar 2 métodos(Get e Set). No C# a gente utiliza o conceito de Propriedades. Aonde a gente tem uma classe Pessoa assim:
public class Pessoa{
private int idade;
public void Idade{
get{ return this.idade;}
set{ this.idade = value;}
}
}
Só chamo atenção para a palavra reservada value, lembre desse value que está dentro do "acessador" set como sendo o argumento passado no método Set que a gente cria lá no Java:
public int SetIdade(int _idade){
this.idade = _idade;
}
O argumento _idade seria o nosso value no C#!
Em relação a usar, basta chamar o nome da propriedade para pegar a idade da pessoa, vamos instanciar(tanto no java como no C#) uma pessoa para exemplificar:
Em java:
Pessoa glauber; // objeto Pessoa
glauber = new Pessoa(); // glauber deixou de ser objeto para ser instancia
Se eu quero neste momento atribuir uma idade para glauber:
glauber.SetIdade(45);
Se em algum momento quiser saber a idade de glauber, basta fazer:
int idadeDeGlauber = glauber.GetIdade();
Em C#:
Pessoa glauber; // objeto Pessoa
glauber = new Pessoa(); // glauber deixou de ser objeto para ser instancia
Se eu quero neste momento atribuir uma idade para glauber:
glauber.Idade = 45;
Se em algum momento quiser saber a idade de glauber, basta fazer:
int idadeDeGlauber = glauber.Idade;
@lucianoJoseBr
My Blog: http://lucjose.wordpress.com |
|
|
|  |  | | |
| Re: duvidas de programação |
|
|
Opa.. valeu mesmo!
Estou aprendendo muito aqui!
Agradeço as dicas! |
|
|
|
|  |  | |  |  | |  |  | |  |
|
|
| | |
|
|
|  |
 |  |
|