Slog55_lua面向对象之lua类

Slog55_lua面向对象之lua类

  • ArthurSlog
  • SLog-55
  • Year·1

  • Guangzhou·China

  • Aug 30th 2018

关注微信公众号“ArthurSlog”

现实中的事情不是根据人的喜好而定的 比如长在你嘴里的智齿 大部分情况下 你会因为自己(的牙)而痛苦 直到忍痛拔掉 鲜血淋漓 也许痛过之后 才能回归正途


开发环境MacOS(High Sierra 10.13.5)

需要的信息和信息源:

开始编码

  • 完整代码:

~/Desktop/lua_learningload/lua_class/Employee.lua

-- 文件名为 EmployeePackage.lua
-- 定义一个名为 EmployeePackage 的模块
-- Meta class
EmployeePackage = {empCount = 0, name = '0', salary = 0}

-- 派生类的方法 new
function EmployeePackage:new (o,name,salary)
  e = e or {}
  setmetatable(e, self)
  self.__index = self
  self.empCount = self.empCount + 1
  self.name = name
  self.salary = salary
  return e
end

-- 派生类的方法 printArea
function EmployeePackage:info ()
  print("Total Employee ", self.empCount)
  print("Name : " , self.name)  
  print("Salary: " , self.salary)
end

emp = Employee:new(nil,'xiaoming',1024)

emp:info()
  • 其中,Employee类如下:

~/Desktop/lua_learningload/lua_class/Employee/lua

-- 文件名为 EmployeePackage.lua
-- 定义一个名为 EmployeePackage 的模块
-- Meta class
EmployeePackage = {empCount = 0, name = '0', salary = 0}

-- 派生类的方法 new
function EmployeePackage:new (o,name,salary)
  e = e or {}
  setmetatable(e, self)
  self.__index = self
  self.empCount = self.empCount + 1
  self.name = name
  self.salary = salary
  return e
end

-- 派生类的方法 printArea
function EmployeePackage:info ()
  print("Total Employee ", self.empCount)
  print("Name : " , self.name)  
  print("Salary: " , self.salary)
end
  • 现在,切换至文件路径下

cd ~/Desktop/lua_learningload/lua_class/Employee.lua

  • 执行lua文件

lua ./Employee.lua

  • 执行结果:
Total Employee  1
Name :  xiaoming
Salary:     1024
  • 另一方面,根据上一篇文章所讲,上面的这个lua类也可以作为一个lua包,在新的程序里导入

~/Desktop/lua_learningload/lua_class/

-- Meta class
EmployeePackage = {empCount = 0, name = '0', salary = 0}

-- 派生类的方法 new
function EmployeePackage:new (o,name,salary)
  e = e or {}
  setmetatable(e, self)
  self.__index = self
  self.empCount = self.empCount + 1
  self.name = name
  self.salary = salary
  return e
end

-- 派生类的方法 printArea
function EmployeePackage:info ()
  print("Total Employee ", self.empCount)
  print("Name : " , self.name)  
  print("Salary: " , self.salary)
end

return EmployeePackage

~/Desktop/lua_learningload/lua_class/EmployeePackage.lua

-- run.lua 文件
-- EmployeePackage 模块为上文提到到 EmployeePackage.lua
-- 别名变量 p
local p = require("EmployeePackage")

emp = p:new(nil,'xiaoming',1024)

emp:info()
  • 现在,切换至文件路径下

cd ~/Desktop/lua_learningload/lua_class/

  • 执行lua文件

lua ./run.lua

  • 执行结果:
Total Employee  1
Name :  xiaoming
Salary:     1024
  • 至此,我们实现了一个lua类,并把这个lua类打包供其他lua程序使用。

欢迎关注我的微信公众号 ArthurSlog

关注微信公众号“ArthurSlog”

如果你喜欢我的文章 欢迎点赞 留言

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值