编辑
2022-05-02
编程语言
00
请注意,本文编写于 518 天前,最后修改于 113 天前,其中某些信息可能已经过时。

目录

matetable 方式
middleclass 方式

Lua语言本身并没有提供面向对象的语法机制,这需要我们自己设计实现一套类的机制。首先,对于面向对象编程,至少需要类和对象这两个概念 。目前有两种方式来完成实现Lua的面向对象编程:一种是利用Lua的元表( metatable )来模拟OOP;另一种是利用第三方库封装的OOP能力来写代码(比如middleclass)。

matetable 方式

定义类

父子类继承——元表方式实现

middleclass 方式

通过middleclass 实现OOP,Github地址是 https://github.com/kikito/middleclass

下面是示例代码,也可以详细参考项目Wiki

lua
local class = require 'middleclass' local Fruit = class('Fruit') -- 'Fruit' is the class' name function Fruit:initialize(sweetness) self.sweetness = sweetness end Fruit.static.sweetness_threshold = 5 -- class variable (also admits methods) function Fruit:isSweet() return self.sweetness > Fruit.sweetness_threshold end local Lemon = class('Lemon', Fruit) -- subclassing function Lemon:initialize() Fruit.initialize(self, 1) -- invoking the superclass' initializer end local lemon = Lemon:new() print(lemon:isSweet()) -- false

本文作者:Tim

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!