Lua面向对象编程之基础结构table简例(面向对象csdn)快来看

随心笔谈9个月前发布 admin
209 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章主要介绍了LUA语言中的面向对象编程(OOP)基础概念。文章通过定义Person类来讲解了对象、属性、方法以及 prototype-based 的对象创建方式。Person类的属性和方法可以通过两种方式定义:一种是通过函数直接定义,另一种是通过构造函数new创建对象。文章还介绍了继承机制,通过Student类继承Person类,并展示了如何通过设置属性和调用方法来实现对象的操作。此外,文章还解释了元表(metatable)的使用,以及如何在对象中添加新属性。整篇文章通过具体的代码示例,生动地演示了LUA面向对象编程的基本原理和实现方法。


— Czhenya Lua 面向对象
— 对于一个对象来说, 属性 方法
–[[ 两种定义函数的方式
person.eat=function()
print(person.name..”在写LUA”)
end
function person.eat()
print(person.name..”在写LUA”)
end
–]]
–作为原型
Person={name=’Czhena’,age=22}
function Person:eat()
print(self.name..”的年龄是”..self.age)
end
function Person:new(o) — 若o是空的则返回false
local t=o or {}
–[[ 和下面设置结果一样,只是两种不同的方式
setmetatable{t,self}
self.__index=self
–]]
setmetatable(t,{__index=self}) –设置元表
–调用一个属性的时候,如果t中不存在,就会在__index所指的table中查找
return t
end
— 类似于通过构造函数创建对象
person1=Person:new({weight=100})
person2=Person:new()
print(person1.name)
print(person1.weight)
print(person2.name)
person1.name=”CZY” –不会改变元表,添加到person.name
person1:eat()
person2:eat()
–继承
Student=Person:new()
Student.grade=1
stu1=Student:new()
stu1:eat()
print(stu1.grade)

© 版权声明

相关文章