【quick-cocos2d-x】Lua 面向对象(OOP)编程与元表元方法

本文介绍了Lua如何使用table模仿面向对象的类和对象,详细讲解了对象、类的概念,并通过实例展示了如何利用元表和元方法实现继承、属性访问以及运算符重载,帮助理解Lua中的面向对象编程思想。
摘要由CSDN通过智能技术生成

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
早期的计算机编程是基于面向过程的方法,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。面向过程式的编程思想很难良好的解决这些复杂的问题,通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。
但是随着软件行业的飞速发展,渐渐的有人开始觉得面向对象编程让代码显的非常复杂,工程庞大。开始有一部分人回归到了面向过程编程,开始运用面向对象和面向过程结合的方式进行开发。
面向对象最主要的两个概念就是对象和类,能够充分理解这两个概念的人自然也很容易理解面向对象的编程思想。
所谓对象,就是用来描述客观存在的一个实体,它是构成系统的一个基本单位。一个对象应该由若干属性组成,这些属性用于描述这个实体的信息,比如某个人的名字。另外还应该包含一些方法,用于描述实体的动作,比如某个人吃饭的过程。
类是具有相同属性和方法的所有对象实体的抽象,类的内部为这些对象提供了统一的抽象描述。比如所有人都有名字,那么“人”这个类就应该包含一个属性叫做人名。所有的人都有这个属性,类的方法也是一样的道理。
Lua语言中没有类的定义,也不能定义类,但是我们可以使用table来模仿对象,如下:

    --  定义一个表来模拟对象,将id和name看成的它的属性
    local person = {id = 2156, name = "yzn",}
    --  给对象添加方法
    function person.sayHello(self) 
        print("你好,我的名字是" .. self.name)
    end
    - - 访问属性
    print(person.id)
    - -  调用方法 
    person:sayHello()   

接下来我们来访问person的属性和调用sayHello方法。发现无论是语法还是效果上面都和Java等其它语言操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值