O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Aula 3: O que são classes

Iniciado por thiago_d_d, 06/12/2012 às 22:32

[box class=catbg]
Aula 3: O que são classes[/box]
Índice

  • 3.0 - Classes?
  • 3.1 - Fazendo nossa própria classe
  • 3.2 - Conclusão
  • 3.3 - Dever de casa
  • 3.4 - Extra: erros comuns
[box class=titlebg]
3.0 - Classes?
[/box]
       Eu diria que o RGSS2 é fácil de se aprender porque se parece muito com a vida real já que, no RGSS2, tudo gira em torno de objetos, assim como no mundo real: no mundo real, temos o objeto árvore, o objeto computador, vários objetos. No RGSS2 também se usa essa visão, para se facilitar. Muita gente estranha:como assim?Não há nada melhor para justificar minha afirmação do que mostrar com códigos.
       Primeiro de tudo, não mexa agora com o projeto da nossa aula anterior , crie um novo projeto no RPG Maker VX. Agora, crie um novo evento e , nesse evento, coloque o seguinte código de script:
$game_player.jump(1, 1)

       Depois disso, teste o jogo e ative seu evento. Opa! O jogador pulou, certo? Isso mesmo. O jogador, assim como seria no mundo real, é representado por um objeto: $game_player. Colocando o .jump(1, 1), mandamos o jogador pular , Observe que o jump é um método, assim como o "p" que vimos na aula.
       Alguns métodos são exclusivos de alguns objetos, assim como o jump do jogador, e só podem ser chamados através desse objeto, no caso $game_player. Assim como métodos comuns, os métodos específicos de cada objeto devem ser definidos também, como aprendemos na aula passada .
       Assim como métodos, objetos também devem ser definidos(ou usando um termo melhor, devem ser DECLARADOS). Veremos como a seguir.
      Chega de papo furado e vamos ao assunto. Classes são as definições dos objetos. Todos os objetos devem ser definidos, e fazemos isso com classes. Classes são como plantas de casas: assim como uma casa deve ter um desenho dizendo como ela será, mesmo antes de ser construida, um objeto deverá ter uma classe dizendo como ele deverá ser. Para definir um objeto, ou melhor, declará-lo, usamos um código nesse formato:
class nome_da_classe
  definições do que o objeto faz...
end

       Assim como definir um método, definir um objeto usando class não o ativa esse objeto. Para utilizar um objeto, temos sempre que criar um objeto primeiro(já que a classe é somente uma espécie de desenho, "planta de uma casa"), utilizando a classe declarada.Depois podemos mandar o objeto fazer o que ele faz, chamando seus métodos.Olhando dessa forma, um objeto é quase como se fosse um conjunto de métodos(na realidade ele não é).
       "$game_player" tem alguns métodos interessantes, além do método de "pular". Alguns deles são: "move_down", "move_left", "move_up", "move_right".Teste eles como: "$game_player.move_down",  "$game_player.move_up",  etc.
[box class=titlebg]
3.1 - Fazendo nossa própria classe
[/box]
       Agora que vem a parte que interessa. Voltemos ao projeto vazio que fizemos na aula anterior. Limpe o "Main" e o deixe sem nada. Depois disso, cole esse código, que declara nossa classe:
class Impressora
  def imprimir_texto(texto)
    p texto
  end
end

       Observe: Nossa classe se chama "Impressora". Geralmente, o nome de uma classe diz o que ela faz. E nessa classe declaramos um método: "imprimir_texto", que recebe o texto a imprimir. Quando o método "imprimir_texto" rodar, ele irá imprimir o texto que ele receber entre parênteses . Então vamos testar!
-Ooooops. Não, ainda falta uma coisa. Nós apenas declaramos a classe "Impressora", uma classe não faz nada, é só um "projeto de planta de uma casa", e definimos uma ação que ela faz, porém ainda não criamos um objeto dessa classe, como eu havia dito que sempre deve acontecer. Para criar um objeto usando esssa classe, adicione essa linha ao script:
objeto_impressora = Impressora.new

       Nessa linha, criamos um objeto "impressora", e armazenamos numa variável chamada "objeto_impressora", todo objeto deve ser armazenado em uma variável, Caso contrário, ele desapareceria. Um exemplo é o objeto jogador(que nós fizemos pular),  que está armazenado na variável chamada "$game_player".
       Então, teste novamente o projeto...
- Ué, ainda nada aconteceu!
- Claro, nós apenas definimos a ação do objeto "Impressora", ainda não chamamos essa ação, como eu havia dito que sempre deveria ser. Para mandar a "Impressora" imprimir(ou melhor, mostrar o texto) adicione mais essa linha:
objeto_impressora.imprimir_texto("Olá alunos!")

       Observe que após uma classe ser declarada, vários objetos podem ser criados a partir dela. Poderíamos ter várias "impressoras", não apenas uma, desde que cada "impressora" fosse armazenada em uma variável separada.
       Uma classe pode ter vários métodos. Um erro comum que muitos cometem é não colocar as declarações de método que eram para ser da classe dentro da declaração da classe.Exemplo:
class Impressora
  
end
def imprimir_texto(texto)
  p texto
end
[box class=titlebg]
3.2 - Conclusão
[/box]
       Então pessoal, espero que tenham gostado dessa terceira aula, tive muita dedicação e trabalho para fazê-la, assim como tive para fazer as outras.Espero vocês na proxima aula! Aconselho a fazerem os deveres de casa, eles servirão para fixar o que aprenderam. Quaisqueres dúvidas, postem neste tópico.
[box class=titlebg]
3.3 - Dever de casa
[/box]
       Faça uma classe chamada "Calculadora". Nessa classe, deverá ter 4 métodos: somar, subtrair, multiplicar e dividir. Todos os métodos receberão dois números e realizarão os cálculos respectivos e, depois disso, mostrarão os resultados. Você deverá criar um objeto "Calculadora" após declarar a classe, e deverá testar todos os seus métodos.
[box class=titlebg]
3.4 - Extra: erros comuns
[/box]
Esquecer de colocar o "end" ao terminar de definir uma classe
       Exemplo:
class Calculadora
  def algo
  end

       Em vez de:
class Calculadora
  def algo
  end
end

Esquecer de colocar o "end" ao terminar de definir um método
       Exemplo:
def algo
  fazer_algo

       Em vez de:
def algo
  fazer_algo
end

:wow: :wow: :wow: