lua class module

这篇博客介绍了Lua中的模块、类和对象的概念。模块是一个独立的环境,通过`require`和`module`访问。类本质上是只读的table,对象是类的实例,可以通过设置元表实现继承。静态与非静态成员在Lua中没有明确区分,但可以通过模块名访问的成员可视为静态。示例代码展示了如何创建对象、继承以及访问静态和非静态成员。
摘要由CSDN通过智能技术生成

模块

 

模块是一个独立的空间,一个独立的环境,访问模块成员需要先require,并使用“模块名.成员名称”的格式访问。注意:模块是一个table。

 

 

在lua中所有对象都是一个table,类也是一个table,但类应该是一个只读的table,类的定义是通过创建一个模块实现的。

 

lua代码:

[plain] view plaincopyprint?

  1. module("Student",package.seeall)  
  2.   
  3. function study(self)  
  4.   
  5. end  
module("Student",package.seeall)

function study(self)

end

 

在调用module方法时添加package.seeall参数的作用是:让该模块可以访问全局变量。

 

对象

 

对象是一个类的实例,在Lua中对象是一个table,在Lua中类更像是一个原型(一个只读的对象)。

 

通过设置tableA的元表的__index字段为tableB,当读tableA中没有的字段时就会从tableB中读该字段。

 

可以先创建一个空table,然后通过设置元表的方式,创建一个对象,当访问该对象没有的字段时就会在类中寻找。

 

lua代码:

[plain] view plain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值