正文

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

文章摘要

这篇文章主要介绍了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)