LU
dúvida

Meta-tabelas e Meta-métodos

Por LuckOake, 19 de jan. de 2013 em Scripts

6
1.2k
LuckOakeL
19 de janeiro de 2013 às 13:39

Olá galera :)

 

Recentemente eu consegui entender a lógica da Programação Orientada a Objetos, mas não consegui compreender o uso de meta-tabelas e meta-métodos. Então a dúvida é a seguinte:

 

Como funcionam meta-tabelas e meta-métodos?

 

Obrigado :D

19 de janeiro de 2013 às 14:29
LEIA AKI
LuckOakeL
19 de janeiro de 2013 às 14:32

 

Eu já li esse tutorial mas não explicou nada. Eu quero é a explicação de um scripter de uma maneira mais clara.

OneshotO
19 de janeiro de 2013 às 16:37

@GabrielSv

 

Vejo que você tentou ajudar, mas, nada contra, esse tutorial do Skydangerous simplesmente é ridículo.

 

@LuckOake

 

Certo, você entendeu a Orientação a Objetos, ou seja, de modo redundante, aprendeu a programar um modo de interação entre várias unidades de programação, os objetos.

 

Então, primeiro, preciso confirmar que você sabe e compreende cem porcento das definições de classe, objeto, atributo e método para te ensinar como funciona a orientação a objetos em Lua.

LuckOakeL
19 de janeiro de 2013 às 16:41

@GabrielSv

 

Vejo que você tentou ajudar, mas, nada contra, esse tutorial do Skydangerous simplesmente é ridículo.

 

@LuckOake

 

Certo, você entendeu a Orientação a Objetos, ou seja, de modo redundante, aprendeu a programar um modo de interação entre várias unidades de programação, os objetos.

 

Então, primeiro, preciso confirmar que você sabe e compreende cem porcento das definições de classe, objeto, atributo e método para te ensinar como funciona a orientação a objetos em Lua.

 

Não cara, você não entendeu. Eu disse que entendi a LÓGICA da programção, não disse em momento nenhum que aprendi a programar.

 

O máximo que ainda consigo fazer é algumas funções simples como um sistema de banco, por exemplo.

 

Pra prosseguir, eu preciso aprender meta tabelas e meta métodos, sem isso eu não aprendo OOP de maneira eficiente.

Editado Janeiro 19 por LuckOake

OneshotO
19 de janeiro de 2013 às 17:07

Vamos começar do zero, então.

 

Orientação a Objetos, é um tipo de programação, onde você desenvolve o código, como "ações" de algo, um objeto. Essas "ações" podem ser chamadas, de maneira grossa, de métodos.

 

Lua não é uma linguagem tipada como C++, certo? Tão pouco é uma linguagem orientada a objetos. Mas existe um sistema da biblioteca Lua que dá a possibilidade de desenvolver Lua orientada a objetos - este é o sistema que chamamos de meta-tabelas. As funções de meta-tabelas, são simplesmente, funções que transformam tabelas normais da linguagem Lua em objetos.

 

Para aprofundar, precisamos, primeiro, de algumas definições da POO, ou, programação orientada a objetos.

 

Classe - Classe é a definição que usamos para um grupo de objetos com características em comum. Tomando como exemplo, cachorros, são várias raças, mas todos tem características em comum, certo? Latem, uivam, têm pelos, quatro patas... logo, pegaremos a classe dos cachorros.

 

Objeto - É um integrante de uma classe, tomando o exemplo anterior, vamos considerar um objeto como um Rottweiler.

 

Atributos - Uma definição de fácil compreensão para atributos - são as características de um objeto.

 

Métodos - São as ações de um objeto, o que o objeto "sabe fazer", em poucas palavras.

 

Agora em Lua, vamos pensar na classe do nosso exemplo anterior, te disse que a biblioteca das meta-tabelas transforma tabelas em objetos.

 

Continuo a explicação daqui a pouco, abraços.