首页 - 信息 - Lua面向对象编程基本结构表简单示例

Lua面向对象编程基本结构表简单示例

2023-10-06 16:47

面向对象编程

(面向对象编程,OOP)是一种非常流行的计算机编程架构。

Lua中最基本的结构是table,所以需要用table来描述对象的属性。

Lua中的函数可以用来表示方法。然后可以通过表+函数来模拟Lua中的类。

简单示例:

-- Czhenya Lua 面向对象
-- 对于对象,属性方法
--[[定义函数的两种方式
www.genealogy-computer-tips.com = function()
  print(www.genealogy-computer-tips.com.."正在编写LUA")
结尾
函数 www.genealogy-computer-tips.com()
  print(www.genealogy-computer-tips.com.."正在编写LUA")
结尾
--]]
——作为原型
人 = {姓名 = 'Czhena',年龄 = 22}
函数人:吃()
  print(www.genealogy-computer-tips.com.."年龄是"..self.age)
结尾
function Person:new(o) -- 如果 o 为空则返回 false
  本地 t = o 或 {}
  --[[结果和下面的设置是一样的,只是两种方式不同
  设置元表{t,self}
  自我.__索引=自我
  --]]
  setmetatable(t,{__index = self}) --设置元表
  --调用属性时,如果t中不存在,则在__index指向的表中查找。
  返回t
结尾
-- 类似于通过构造函数创建对象
person1 = Person:new({权重 = 100})
person2 = 人:new()
print(person1.姓名)
print(person1.体重)
print(person2.姓名)
www.genealogy-computer-tips.com = "CZY" -- 不会更改元表,添加到 www.genealogy-computer-tips.com
人1:吃()
人2:吃()
 - 继承学生 = 人:new()
学生.年级 = 1
Stu1 = 学生:new()
Stu1:吃()
打印(stu1.grade)

冒号和点定义函数的区别:

-- 使用冒号和点来定义函数。建议使用什么来定义函数以及使用什么来调用它?
人= {name =“Czhenya”,年龄= 22}
函数人:eat()
  print(www.genealogy-computer-tips.com.."年龄是"..self.age)
结尾
人.吃(人)
一个=人
--Colon调用self自动赋值
一个:吃()
--通过dot调用时,self不会自动赋值,必须通过参数传递。
a.吃(a)

总结