Visitante!
Faça seu Login ou Registre-se!

Galeria de Jogos

[Ruby] Aula 2 : Classes, métodos e módulos 8 Respostas | 4096 Visualizações

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

Raizen

  • *
  • Mensagens: 2476 Ouro: 1838

    Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!

    • Ver perfil
    • E-mail
Índice das aulas básicas
Índice das aulas avançadas
Índice das aulas de algoritmos
Classes, métodos e módulos

Métodos

  Métodos são pequenos blocos de códigos que podem serem chamados sempre que for necessário, esses blocos podem ter um valor único, ou serem bem mais complexos com inúmeros comandos para o programa. Sempre que for inicializar algum objeto, devemos escrever a palavra reservada que o programa irá identificar.
  Palavras reservadas, são aquelas cujo não podem serem usadas para variáveis e objetos, pois são por elas que o programa indentifica os seus comandos.
  A palavra para indentificar métodos é a def, a partir dela o programa identifica a palavra a frente como um método. É altamente recomendado utilizar letra minuscula para o método, visto que letras minúsculas são para variáveis locais, portanto podem ser modificados, e maiúsculas para constantes, portanto não recomenda-se que seja modificado.
Exemplo:
Código: [Selecionar]
def raizen
  return 32
end
Perceba que sempre que eu colocar a palavra raizen, será chamado o valor 32, façam um teste no rpg maker da seguinte maneira.
Código: [Selecionar]
def raizen
  return 32
end
p raizen
  O p imprime valores e objetos, para o Ace basta ligar a janela de depuração para ver o valor sendo impresso, em outros makers ele aparece como pop-up.
Nas versões mais recentes do Ruby, o método assume o último valor, fazendo com que o último return possa ser facultativo.
Código: [Selecionar]
def raizen
32
end
O método raizen assume valor 32, sempre que eu precisar desse valor eu posso usar "raizen" para recebe-lo.
Tente o seguinte, em um script vazio.
Código: [Selecionar]
def metodo
  55
end
p metodo
p metodo

Classes
  Se os métodos são muito usado para valores e para blocos de códigos, as classes são o conjunto desses blocos para fazer o programa, e assim sendo a base dos objetos em um código. As classes diferente dos métodos, elas são iniciadas com uma letra maiúscula e sua reservada é a palavra class.
  as classes permitem que sejam lidos atributos e métodos a partir dela, assim permitem que pequenas partes desse objeto classe, seja acessado remotamente.
Exemplo:
Código: [Selecionar]
class Aula
  def metodo1
    p "55"
  end
end
  nesse exemplo eu criei uma classe com o nome de uma constante, Aula, e nessa classe eu criei o método "metodo1" em que posso acessa-lo a partir de uma variável em que a classe seja iniciada.
Código: [Selecionar]
class Aula
  def metodo1
    p "55"
  end
end
aula1 = Aula.new
aula1.metodo1
Se colocarem o código acima em um script vazio, poderão ver que eu iniciei a classe dentro do aula1, e chamei o seu método como um atributo.
  Como podem ver as classes são usadas justamente para separar blocos de códigos(métodos) e organizar melhor cada objeto, algo semelhante ao que foi mostrado na primeira aula.

  Classes podem ser ainda mais organizados no fato de que é possível criar classes que herdam aqueles comandos da classe mãe, chamadas de sub-classes, tornando a programação em Ruby algo mais organizado ainda. Para herdar comandos de uma classe mãe basta fazer o seguinte.
Código: [Selecionar]
class Aula
  def metodo
    p "55"
  end
end

class Aula2 < Aula
end
aula1 = Aula2.new
aula1.metodo

Como podem ver, o script acima irá imprimir 55, visto que o metodo da Aula, foi herdado pelo Aula2, eu poderia reescrever esse "metodo" com outro bloco de códigos, e esse bloco passaria a fazer efeito

Módulos
  Outro tipo de objeto diferente, muito semelhante a classe, porém esse diferente das classes que são usado para armazenar comandos, os módulos são mais usados para armazenar valores e fórmulas, e não herdam blocos de outros módulos diferentes. São mais pratico em relação a armazenar tal coisas, pois não é necessário que sejam inicializado e tem muitos usos em relação a organização e a programação.
Exemplo:
Código: [Selecionar]
module Values
  def metodo
    p "45"
  end
end
class Aula
include Values
end
aula1 = Aula.new
Aula.metodo
Basicamente juntando tudo que foi dito nessa aula, podemos criar vários modos de optimizar os codes, e assim facilitar nossa vida, apesar da aula de variáveis ser a próxima, irei dar mais um uso usando variáveis para módulos.
Código: [Selecionar]
module Valores
  Value = 5
end
class Aula
  def imprimir
    p Valores::Value
  end
end
Colocar o nome do módulo e depois "::" chama uma constante com o nome seguinte.

Fechando
  Essa foi a segunda aula, espero que estejam acompanhando, a partir da próxima terá tarefas a serem feitas usando tudo o que tem das aulas anteriores, boa sorte, e espero ver os scripts de vocês nessa comunidade  :wow:
« Última modificação: 16 Dez 2015, 10:30 por Raizen »

Mepps

  • *
  • Mensagens: 112 Ouro: 27
  • "Dentro do possivel, Tudo é possivel"
    • RPG Maker VX/Ace
    • Facebook
    • Ver perfil
    • E-mail
  • Colossus
Re: Aula 2 : Classes, métodos e módulos
Resposta 1 Online: 27 Jul 2013, 00:24
muito bom raizen otimo conteudo gostei mesmo cara.
você ensina muito bem e e objetivo em suas aulas parabéns
tudo de bom cara. estarei acompanhando...
  :XD:

eu so acho uma pena o pessoal estar abandonando
o rpg maker, e indo pra outras engines.. o maker
tem uma boa historia. dez da antiga rpg maker brasil

enfim gostei muito das suas aulas

RedSteam

  • *
  • Mensagens: 21 Ouro: 0
    • RPG Maker XP
    • Ver perfil
Re: Aula 2 : Classes, métodos e módulos
Resposta 2 Online: 24 Set 2013, 18:26
eu até to entendendo a estrutura da linguagem, mas não to entendendo nada que ela diz.

O que é uma variável? e uma constante? pra que serve um "valor"?

Eu não estou conseguindo organizar na cabeça como tudo isso, faz uma janela aparecer na tela, o tamanho dela e coisas do tipo.
Por exemplo eu vejo os códigos que são dados como exemplo e penso "eu sei que isso é uma classe, isso é um módulo, mas o que diabos isso faz?"
Desculpa eu tenho dificuldade em entender esse tipo de coisa, se eu provavelmente vou dar bastante trabalho pra você Raizen.

Ah e sim eu não vi todas as aulas e não sei se você responde isso mais tarde, mas lembrando de como era quando eu estudava matemática eu to parando aqui para perguntar antes de ficar cada vez mais confuso.
Se você disser que eu vou entender isso indo para frente fechou  :ok:

----------------
Sei que o tópico ta parado faz um bom tempo mas até onde eu ví é melhor eu perguntar por aqui mesmo e não por PM, porque eu tenho certeza que eu não sou o único com esse tipo de duvida para aprender.
« Última modificação: 24 Set 2013, 18:29 por RedSteam »

Ryugo

  • *
  • Mensagens: 66 Ouro: 8
  • Olá!
    • RPG Maker VX/Ace
    • Ver perfil
Re: Aula 2 : Classes, métodos e módulos
Resposta 3 Online: 24 Set 2013, 19:02
Você verá tudo isso nas próximas aulas,no começo do tópico tem um índice onde mostra as aulas com os nomes delas. Nos nomes ta o que você vai aprender  :ok:

Mas se persistir alguma dúvida pergunte no tópico que eu ou alguém te responde  :blink:

Tabby Feline

  • *
  • Mensagens: 24 Ouro: 14
  • Das piores histórias saem as grandes ideias!
    • Ver perfil
    • E-mail
Re: Aula 2 : Classes, métodos e módulos
Resposta 4 Online: 08 Mar 2014, 21:00
Conheço RPG Maker a muito tempo, pelo menos uns 6 anos, mas sou leigo quanto a criar ou editar scripts. Vou ler todas as aulas e ver se consigo aprender alguma coisa já que não quero ser passado para trás e pretendo fazer scripts!! 
:*-*:
O mundo não se divide em pessoas boas e más. Todos temos Luz e Trevas dentro de nós...

O que importa é o lado o qual decidimos agir. Isso é o que realmente somos!

Jingoku

  • *
  • Mensagens: 63 Ouro: 8
  • Só sei que nada sei.
    • Unity
    • Facebook
    • Youtube
    • Ver perfil
    • E-mail
Re: Aula 2 : Classes, métodos e módulos
Resposta 5 Online: 11 Set 2014, 03:27
Muito bom Raizen, você e o Khas são meus “quebra-galhos“, irei trazer neus scripts pra cá concerteza, e você estará nos creditos dos meus projetos 4ever.

Vert

  • *
  • Mensagens: 143 Ouro: 34
  • Unity Developer
    • Unity
    • Youtube
    • Ver perfil
    • E-mail
Re: Aula 2 : Classes, métodos e módulos
Resposta 6 Online: 23 Set 2014, 10:29
Muito boa a aula! Lembro de ter criado uma title uma vez no ace, ta aqui no forum em algum lugar... Mas lembro também que eu não entendia direito oque estava fazendo essas aulas vão ajudar muito!  :XD:
Não deixe de visitar!

Moycanow

  • *
  • Mensagens: 96 Ouro: 32
  • O Homem criou deus a sua imagem e semelhança
    • Ver perfil
    • E-mail
Re: Aula 2 : Classes, métodos e módulos
Resposta 7 Online: 23 Set 2014, 10:51
Essas Aulas são muito boas mais já pensaram na ideia de talvez uma vídeo aula junto facilitaria muito   :*-*: :rainbow:

Enter

  • *
  • Mensagens: 230 Ouro: 131
  • The Game Has Changed
    • DeviantArt
    • Ver perfil
Re:  Aula 2 : Classes, métodos e módulos
Resposta 8 Online: 08 Jan 2015, 02:35
eu até to entendendo a estrutura da linguagem, mas não to entendendo nada que ela diz.

O que é uma variável? e uma constante? pra que serve um "valor"?

Eu não estou conseguindo organizar na cabeça como tudo isso, faz uma janela aparecer na tela, o tamanho dela e coisas do tipo.
Por exemplo eu vejo os códigos que são dados como exemplo e penso "eu sei que isso é uma classe, isso é um módulo, mas o que diabos isso faz?"
Desculpa eu tenho dificuldade em entender esse tipo de coisa, se eu provavelmente vou dar bastante trabalho pra você Raizen.

Ah e sim eu não vi todas as aulas e não sei se você responde isso mais tarde, mas lembrando de como era quando eu estudava matemática eu to parando aqui para perguntar antes de ficar cada vez mais confuso.
Se você disser que eu vou entender isso indo para frente fechou  :ok:

----------------
Sei que o tópico ta parado faz um bom tempo mas até onde eu ví é melhor eu perguntar por aqui mesmo e não por PM, porque eu tenho certeza que eu não sou o único com esse tipo de duvida para aprender.

Primeiramente peço compreensão por ter ressuscitado o tópico, mas eu vejo necessidade disso. Pois a dúvida dele pode ser de outros que vão ler o mesmo tópico. Então, vou tentar ajuda-lo, aproveitando que está na primeira página do tópico.

RedSteam eu entendi a sua dúvida e espero que você volte a ler esse tópico, mas deixo a resposta não só para você mas para outros: Primeiro apenda a lógica da programação. Depois adote uma linguagem para aplicá-la. Se preferir faça os dois ao mesmo tempo. Nas universidades normalmente, nas aulas de programação, é divido a aula em 2 partes: Teórica e Prática(laboratório). No primeiro semestre a teórica é pura lógica de programação. Com a lógica da programação você desenvolve a habilidade de formular e interpretar o que quer implementar.
E quando você abrir os scripts do RGSS, entenda que aquilo faz parte de uma engine, um programa e qualquer programador precisa estuda-la para poder utilizar. Tente sempre idealizar bem o que você quer antes de implementar - ficará mais fácil para fazer pesquisas e perguntas em relação a sua dúvida. Cada script resolve um ou vários "problemas" que o programador formulou e resolveu. Por isso no inicio mesmo você sabendo o que é uma classe não necessariamente quer dizer que você vai pegar um script e entende-lo completamente, ainda mais se você estiver fora do contexto dele. Mas com a prática e resolvendo os seus códigos você começa a entender os outros.

Espero ter ajudado.

 

Versão Mobile