Fórum Sharpgames
 
 
  Forum  Criação de Jogo...  Geral  duvidas de programação
Anterior Anterior
 
Próximo Próximo
Nova Entrada 14/2/2009 19:04
Resolvido
  Cloudwsy
31 tópicos
8th Level Poster


duvidas de programação 
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!
 
Nova Entrada 14/2/2009 20:31
  lucianoJose
195 tópicos
Iniciante


Re: duvidas de programação 
Modificado Por lucianoJose  em 25/2/2009 21:25:11)
 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
 
Nova Entrada 14/2/2009 21:03
  Cloudwsy
31 tópicos
8th Level Poster


Re: duvidas de programação 
Opa.. valeu mesmo!
Estou aprendendo muito aqui!

Agradeço as dicas!
 
Anterior Anterior
 
Próximo Próximo
  Forum  Criação de Jogo...  Geral  duvidas de programação
Logos do XBox 360, XNA e Games For Windows
Copyright 2006-2012 por SharpgamesPolítica de Privacidade  |  Termos de Uso