Os métodos são funções associadas aos nossos objetos para executar suas ações. Em Lua, 
                associamos uma função anônima à uma table para simulação.
            
            
                Um métodos público em Lua é uma funções anônima associada à uma table como mostrado na 
                sintaxe abaixo:
            
            Sintaxe
            
minha_classe = {}
minha_classe.nome_metodo = function(<parametros>)
--corpo
end
            
                Um método privado, por sua vez, é uma função local definida/declarada dentro 
                de uma table. Esse tipo de método não pode ser acessado fora da classe.
            
            Sintaxe
            
nome_classe.nome_metodo_publico = function() 
    local function nome_metodo_privado(<parametros>) 
      --corpo
    end
end
            Exemplo 1: método público e privado
            
--classe
local MinhaClasse = {} --table
--construtor público
MinhaClasse.construtor = function()
    local classe = {} 
    local function MetodoPrivado(valor)
        print("privado param:",valor);
    end
   
    function classe.MetodoPublico(valor)
        print("publico param:",valor)
        print("invocando método privado via público")
        MetodoPrivado(valor) 
    end
    return classe
end
--instância
local objeto = MinhaClasse.construtor()
objeto.MetodoPublico("string")
            Saída
            
publico param:	string
invocando método privado via público
privado param:	string