其他分享
首页 > 其他分享> > 零基础学lua第十三天---面向对象

零基础学lua第十三天---面向对象

作者:互联网

一、前言


前面和大家讲了这么久的lua,相信大家应该都知道了lua其实就是一个面向过程的语言,因此封装性不是很强,不过这并不影响它也能实现面向对象,只是需要我们去实现而已,下面我们就来一起来使用lua实现一个面向对象的代码语句。

二、类

我们都知道要想使用面向对象的语法,类是最能体现这一核心理念的产物,那么现在就让我们使用lua来实现一个类吧。如下:

fb122b2abbac35733b1548bb035091f0.jpeg

我们可以来看看结果如何,如下:

a260f1cc77cb5dd1efc8455621b90b89.jpeg

可以看到私有方法需要在公有方法中才能够访问。当然,如果你不信邪,小编可以帮你试试,如下:

cd8a55079fda7de6eeb8bf921953968d.jpeg

正如小编说的那样,这样会报错。上面的类我们采用的是模块的形式来实现的,现在我们换种方法,使用table来实现,如下:

8946cf2f1ab4b2085be361cd10169714.jpeg

现在我们只能使用类名来访问table中的键值对,其实我们还可以使用self来访问table中的值,如下:

b4114064327505b736038062d315d279.jpeg

从上面我们可以看出,不管是点号还是冒号,直接使用table来访问里面的值都是可以访问到的,但是如果使用点号的时候如果使用self来访问的话,是访问不到table中的值的,如下:

f0f57ed5852d6d3e101dfec63c0bc84c.jpeg

三、继承

指的是子类可以继承父类的行为并且能够重写内容,如下:

1e42105a9620c73955987d29cde2eb0d.jpeg

这样就实现了类的继承,并且子类修改了从父类继承过来的值。

四、多态

面向对象一个比较重要的概念就是多态了,而lua实现多态更容易,由于我们刚刚已经实现了继承,因此多态就容易多了,如下:

fe3fe9d3cba48711a6bce098293fc057.jpeg

五、总结

以上就是小编总结的关于lua中实现面向对象各个功能的实现方法了,有什么不懂的可以和小编多多交流哦。


标签:面向对象,实现,访问,如下,---,lua,table,第十三天
来源: https://blog.51cto.com/u_9736252/2804225