• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Lua面向对象编程之基础结构table简例

    面向对象编程

    (Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。

    Lua中最基本的结构是table,所以需要用table来描述对象的属性。

    Lua中的function可以用来表示方法。那么Lua中的类可以通过table + function模拟出来。

    简例:

    -- Czhenya Lua 面向对象
    -- 对于一个对象来说, 属性 方法
    --[[ 两种定义函数的方式
    person.eat = function()
      print(person.name.."在写LUA")
    end
    function person.eat()
      print(person.name.."在写LUA")
    end
    --]]
    --作为原型
    Person = {name = 'Czhena',age = 22}
    function Person:eat()
      print(self.name.."的年龄是"..self.age)
    end
    function Person:new(o)  -- 若o是空的则返回false
      local t = o or {}
      --[[ 和下面设置结果一样,只是两种不同的方式
      setmetatable{t,self}
      self.__index=self
      --]]
      setmetatable(t,{__index = self})  --设置元表
      --调用一个属性的时候,如果t中不存在,就会在__index所指的table中查找
      return t
    end
    -- 类似于通过构造函数创建对象
    person1 = Person:new({weight = 100})
    person2 = Person:new()
    print(person1.name)
    print(person1.weight)
    print(person2.name)
    person1.name = "CZY"  --不会改变元表,添加到person.name
    person1:eat()
    person2:eat()
    --继承
    Student = Person:new()
    Student.grade = 1
    stu1 = Student:new()
    stu1:eat()
    print(stu1.grade)

    冒号和点定义函数的区别:

    -- 使用冒号和点来的定义函数,建议用什么定义函数,用什么调用
    person = {name="Czhenya",age=22}
    function person:eat()
      print(self.name.."的年龄是"..self.age)
    end
    person.eat(person)
    a = person
    --冒号调用self自动赋值
    a:eat()
    --通过点来调用的时候,self不会自动赋值,必须通过参数传递
    a.eat(a)

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • 深入谈谈lua中神奇的table
    • Lua Table转C# Dictionary的方法示例
    • Lua中设置table为只读属性的方法详解
    • Lua编程示例(一):select、debug、可变参数、table操作、error
    • 举例讲解Lua中的Table数据结构
    • Lua table中安全移除元素的方法
    • Lua的table库函数insert、remove、concat、sort详细介绍
    • C++遍历Lua table的方法实例
    • Lua中释放table占用内存的方法
    • Lua中table的遍历详解
    • Lua中获取table长度问题探讨
    • Lua中获取table长度的方法
    • Lua中table里内嵌table的例子
    上一篇:phpredis执行LUA脚本示例代码
    下一篇:Lua协同程序coroutine的简介及优缺点
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Lua面向对象编程之基础结构table简例 Lua,面向,对象,编程,之,基础,