Uma ajuda com Classes, métodos e módulos

3 Respostas   289 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

NarukamiKyosuke

  • *
  • Posts: 34
  • Ouros: 23
  • Realmente está fazendo o que queria estar fazendo?
Tópico criado em: 02/12/2014 às 21:55 - Última modificação por NarukamiKyosuke em 06/12/2014 às 02:08

Eu estava lendo as aulas de Ruby do Raizen até que me deparo com um exercício. Eu não quis fazer, só dei uma olhada na resposta certa para ver se eu entendia. O problema é que eu não entendi por que aquela é a resposta certa.
Eu voltei e reli a aula 2, li novamente a 3, mas não entendi por que apenas o segundo código esta correto.
Se alguém puder me ajudar, de uma olhada nesses dois códigos e me diga por que apenas o segundo o RPG Maker aceita (eu fiz uns testes e o RPG Maker aponta um erro quando se usa o primeiro código).

Errado
[close]

Correto
[close]

Eu percebi, obviamente, que tem um "objeto" ali no meio, mas qual a diferença de ter ou não ter isso?

Obrigado pela atenção


Acesse esse Link Curioso

Geraldo de Rívia

  • Mito
  • *
  • Posts: 4452
  • Ouros: 3887
  • O vento está sibilando.
  • Medalhas Vencedor do Protótipo Premiado Participantes do Maps Together 2
Resposta 1: 03/12/2014 às 09:01

É que tipo, ao utilizar o código somar(2, 4), você está "chamando" o
método somar para ele executar a parte dele. Só que, este método está
dentro de uma classe (a Link), mas se você não declarar qual classe é, o
sistema não sabe onde está o método que tu mandou ser executado, logo, buga.

Ao usar o código objeto.somar(2, 4), tu especifica que o método está na classe
objeto que no caso tu colocou como sendo igual a classe Link. Daí o sistema sabe
que tem que procurar o método chamado pelo código lá.

Acho que é isso.
  :XD:

NarukamiKyosuke

  • *
  • Posts: 34
  • Ouros: 23
  • Realmente está fazendo o que queria estar fazendo?
Resposta 2: 06/12/2014 às 02:07

Obrigado King Gerar, depois de ler e reler várias vezes a sua resposta e a aula finalmente consegui entender. O caso é que a classe precisa ser executada em uma variável (estou acostumado com linguagem C, talvez por isso não tenha compreendido de primeira). Agora tudo faz sentido. aushuash

#partiu ler as próximas aulas


Acesse esse Link Curioso

Raizen

  • Administrador
  • *
  • Posts: 3224
  • Ouros: 3192
  • Medalhas Vencedor do Protótipo Premiado Participante notável do evento "A Estação das Luzes do Norte" Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!
Resposta 3: 06/12/2014 às 04:10

Só complementando aqui para talvez ajudar um pouco :P.

A ideia de ter um objeto é que TUDO no Ruby é orientado a objetos, tem muitas linguagens orientadas a objetos como C#, Java... Mas o Ruby é um dos poucos que realmente cada coisa nele é orientado a objeto, então não há nada nele que não pertença a algum objeto(repeti objeto muitas vezes explicando shaush xD).

Sobre ter ou não ter o objeto, isso no Ruby é meio complexo, tanto que explico na Aula 8, coloquei essa aula lá pra frente justamente porque é relativamente intermediário para cima, então tentei na aula 3 mostrar o básico, mesmo que pareça meio mecânico sempre ter que instanciar uma classe que vai usar, mas é melhor assim e depois começar a entender o porque de tudo isso :D.