lua 面向对象
Posted Unity自学档案
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 面向对象相关的知识,希望对你有一定的参考价值。
lua面向对象
面向对象编程是当下最流行的编程框架,用Unity进行开发时使用的C#就是面向对象编程
面向对象的特性
封装
封装简单理解就是把一个方法或者一个对象的信息,功能,和响应都集中到一个单独的对象中继承
父类有的公开方法和属性子类都可以使用,而子类特有的方法或者属性不对父类公开多态
同一个操作作用在不同的对象身上有着不同的表现形式,例如山羊和老虎都需要吃饭,把吃饭看成一个方法,山羊吃草而老虎却是吃肉。抽象
菜鸟教程解释:抽象(Abstraction)是简化复杂的现实问题的途径,它可以为具体问题找到最恰当的类定义,并且可以在最恰当的继承级别解释问题。
聊聊lua的面向对象
创建一个简单的对象如下:
people ={}
people.name="小明"
people.age=18
people.sex="男"
function people.eat()
return "爱吃萝卜和青菜"
end
print(string.format("姓名:%q\n性别:%q\n年龄:%q\n爱吃的美食:%q",people.name,people.sex,people.age,people.eat()))
--[[
上面创建了一个简单的人物对象people,这个对象共有三个字段属性,分别为name,age,sex
有着一个方法体eat()
这样就简单的模拟了一个对象,使用时直接用people打点调用其中的属性名和方法名即可
]]--
--以下简单的类包含了三个属性:area, length 和 breadth,printArea方法用于打印计算结果:
-- 元类
Rectangle = {area = 0, length = 0, breadth = 0}
-- 派生类的方法 new
function Rectangle:new (o,length,breadth)
o = o or {}
setmetatable(o, self)
self.__index = self
self.length = length or 0
self.breadth = breadth or 0
self.area = length*breadth;
return o
end
-- 派生类的方法 printArea
function Rectangle:printArea ()
print("矩形面积为 ",self.area)
end
--创建对象是为类的实例分配内存的过程。每个类都有属于自己的内存并共享公共数据。
r = Rectangle:new(nil,10,20)
--我们可以使用点号(.)来访问类的属性:
print(r.length)
--我们可以使用冒号 : 来访问类的成员函数:
r:printArea()
创建一个简单的对象如下:
以上是关于lua 面向对象的主要内容,如果未能解决你的问题,请参考以下文章