Lua 面向对象
来源:互联网 发布:鼠标箭头美化软件 编辑:程序博客网 时间:2024/06/14 21:56
面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。
LUA中最基本的结构是table,所以需要用table来描述对象的属性。
lua中的function可以用来表示方法。那么LUA中的类可以通过table + function模拟出来。
简例:
-- Czhenya Lua 面向对象-- 对于一个对象来说, 属性 方法--[[ 两种定义函数的方式person.eat = function() print(person.name.."在写LUA")endfunction person.eat() print(person.name.."在写LUA")end--]]--作为原型Person = {name = 'Czhena',age = 22}function Person:eat() print(self.name.."的年龄是"..self.age)endfunction Person:new(o) -- 若o是空的则返回false local t = o or {} --[[ 和下面设置结果一样,只是两种不同的方式 setmetatable{t,self} self.__index=self --]] setmetatable(t,{__index = self}) --设置元表 --调用一个属性的时候,如果t中不存在,就会在__index所指的table中查找 return tend-- 类似于通过构造函数创建对象person1 = Person:new({weight = 100})person2 = Person:new()print(person1.name)print(person1.weight)print(person2.name)person1.name = "CZY" --不会改变元表,添加到person.nameperson1:eat()person2:eat()--继承Student = Person:new()Student.grade = 1stu1 = Student:new()stu1:eat()print(stu1.grade)
冒号和点定义函数的区别:
-- 使用冒号和点来的定义函数,建议用什么定义函数,用什么调用person = {name="Czhenya",age=22}function person:eat() print(self.name.."的年龄是"..self.age)endperson.eat(person)a = person--冒号调用self自动赋值a:eat()--通过点来调用的时候,self不会自动赋值,必须通过参数传递a.eat(a)
阅读全文
0 0
- 【Lua】Lua之面向对象
- LUA 面向对象
- LUA面向对象浅析
- Lua 面向对象实现
- lua 面向对象
- Lua 面向对象
- Lua面向对象
- lua 面向对象编程
- lua面向对象
- lua实现面向对象
- lua面向对象思想
- lua 面向对象使用
- Lua的面向对象
- lua实现面向对象
- Lua面向对象
- lua中的面向对象
- lua的面向对象
- lua实现面向对象
- C语言函数之可变参数原理:va_start、va_arg及va_end
- Echarts2 柱状图
- 我的学习记录29
- python安装easyinstall/pip出错
- 一中OJ #3509 七的倍数 [USACO Jan16,洛谷P3131] | 同余前缀和 | 解题报告
- Lua 面向对象
- 数据库的三大范式知识
- 爬虫用Cookie登录网页
- 慕课网《HTML+CSS基础课程》笔记总结(五)
- OpenGL 数据类型
- HDU2119-Matrix
- XListView 下拉刷新、上拉加载功能
- Android MemInfo
- JZOJ5461. 【NOIP2017提高A组冲刺11.8】购物