Lua如何实现面向对象编程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计874个文字,预计阅读时间需要4分钟。
面向对象的三个基本特性:封装、继承、多态封装:隐藏对象的状态,只通过公开的方法和属性进行交互。继承:允许子类继承父类的属性和方法,实现代码复用。多态:同一个接口,不同的实现,通过父类引用调用子类的实现。
面向对象的三个基本特征
- 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。
- 继承:使子类具有父类的属性、方法或者重新定义、追加属性和方法等。
- 多态:同以操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类的方法。
Lua中的面向对象
Lua中的表和对象有很多相似性,因此在Lua中可以使用表来实现面向对象。
Lua中类的方法可以通过表+function来模拟:
zhangsan = {name = ""} function zhangsan.setName(self, name) self.name = name end zhangsan.setName(zhangsan, "张三") print(zhangsan.name) --输出: --张三
类(Class)
上面的例子中,zhangsan对象拥有了属性和方法,但是这个对象却不是通过类来创建的。在大多数面向对象的语言中都提供了类的概念,类在对象创建中扮演了模板的作用。
在Lua中,我们可以使用原型的思想来模拟类。让每一个对象都有一个原型,当对象遇到未知的操作时就在原型中去查找。
本文共计874个文字,预计阅读时间需要4分钟。
面向对象的三个基本特性:封装、继承、多态封装:隐藏对象的状态,只通过公开的方法和属性进行交互。继承:允许子类继承父类的属性和方法,实现代码复用。多态:同一个接口,不同的实现,通过父类引用调用子类的实现。
面向对象的三个基本特征
- 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。
- 继承:使子类具有父类的属性、方法或者重新定义、追加属性和方法等。
- 多态:同以操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类的方法。
Lua中的面向对象
Lua中的表和对象有很多相似性,因此在Lua中可以使用表来实现面向对象。
Lua中类的方法可以通过表+function来模拟:
zhangsan = {name = ""} function zhangsan.setName(self, name) self.name = name end zhangsan.setName(zhangsan, "张三") print(zhangsan.name) --输出: --张三
类(Class)
上面的例子中,zhangsan对象拥有了属性和方法,但是这个对象却不是通过类来创建的。在大多数面向对象的语言中都提供了类的概念,类在对象创建中扮演了模板的作用。
在Lua中,我们可以使用原型的思想来模拟类。让每一个对象都有一个原型,当对象遇到未知的操作时就在原型中去查找。

