首页 > 其他分享 >lua简单实现面向对象

lua简单实现面向对象

时间:2023-04-17 17:47:38浏览次数:32  
标签:obj name 面向对象 -- self lua 简单 end age

--父类
local Person = 
{
    name = "XX"
    ,
    age = 0
    ,
    PrintName = function(self)
        print("PersonName : "..self.name)
    end
    ,
    new = function(self,name,age)
        obj = {}
        --创建并赋值实例的字段
        obj.name = name
        obj.age = age
        setmetatable(obj , {__index = self})
        return obj
    end
    ,
    PrintAge = function(self)
        print(self.name.."age"..self.age);
    end
}
--子类
local Student = 
{
    PrintName = function(self)
        print("StudentName : "..self.name)
    end
    ,
    new = function(self,name,age)
        obj = {}
        setmetatable(obj , {__index = self})
        --创建并赋值实例的字段
        obj.name = name;
        obj.age = age
        return obj
    end
}

setmetatable(Student , {__index = Person}) 
--Student.__newindex = Person

local zhangsan = Student:new("zhangsan",20)
local lisi = Person:new("lisi",25)

zhangsan:PrintName()
lisi:PrintName()
--用的是父类的方法,但使用的数据是zhangsan的name和age(用self传过去的),字段无法实现继承,需要每个实例都创建
zhangsan:PrintAge() 
lisi:PrintAge() 

 

标签:obj,name,面向对象,--,self,lua,简单,end,age
From: https://www.cnblogs.com/mcyushao/p/17326568.html

相关文章

  • GDI简单介绍
    https://blog.csdn.net/zhoumin4576/article/details/102565308对于GDI的理解GDI:在物理设备上显示图形,可以理解为一个程序(对比有界面的)画图工具软件2.GDI座标   3.GDI画图 4.测试原码GDITest.cpp#include<windows.h>LRESULTCALLBACKpfnWndProc(HWN......
  • 通过github搭建简单的网站
    正常搭建个网站可能需要服务器和域名,但是有没有不花钱的方法呢,github可以。首先新建个工程,名称随意然后新建个index.html文件做为首页之后点击设定最下面有个GitHubPages选择选择下面的内容,你的网站地址就会生成出来了打开网址https://huyunan.github.io/haha/ ......
  • JavaSE08面向对象综合练习
    来自黑马Java课程练习一:文字版格斗游戏需求:​ 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来。举例:​ 程序运行之后结果为:​ 姓名为:乔峰 血量为:100​ 姓名为:鸠摩智 血量为:100​ 乔峰举起拳头打了鸠摩智一下,造成了X......
  • JSON.stringify()与JSON.parse()没有你想的那样简单
    重新学习这两个API的起因在本周五有线上的项目,16:30开始验证线上环境。开始都是顺顺利利,一帆风顺。大概17:50左右,我正在收拾东西。准备下班去王者峡谷骑着我的船溜达一圈。可是天降意外,给我派了一个bug。测试给我说:有一条数据的详情页有数据但是在页面中没有显示数据。不可......
  • 设计模式二:工厂模式之简单工厂
    一、简介1.1什么是简单工厂模式在软件开发中,我们经常需要根据不同的需求创建不同的对象或者实例,为了实现这一目的,我们通常会采用工厂模式。工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。工厂模式分为简单工厂、工厂方法和抽象工厂三种,本文将重点介绍简单工厂模式。简......
  • django restframework的简单使用
    djangorestframework的简单使用1.快速上手配置:(pipinstalldjangorestframework==3.12.4)#settings.pyINSTALLED_APPS=['rest_framework']REST_FRAMEWORK={#DRF的相关配置后面都在这里}urls和views#urls.pyfromdjango.urlsimportpathfr......
  • ltp的简单学习
    ltp的简单学习简介下载地址为:https://github.com/linux-test-project/ltpLinuxTestProjectisajointprojectstartedbySGI,OSDLandBulldevelopedandmaintainedbyIBM,Cisco,Fujitsu,SUSE,RedHat,Oracleandothers.Theprojectgoalistodeliver......
  • thinkphp:redis+lua实现短信发送频率限制(thinkphp v6.0.12LTS)
    一,配置:.env中[REDIS0]TYPE=redisHOST=127.0.0.1PORT=6379PASSWORD=二,php代码:1,lib\util\SmsRateUtil.php<?phpnamespaceapp\lib\util;//短信验证码发送频率classSmsRateUtil{//redis连接private$redis;//60秒内不允许重复发送pri......
  • Linux驱动入门-最简单字符设备驱动(基于pc ubuntu)
    原文:https://blog.csdn.net/XiaoXiaoPengBo/article/details/128505550一.字符设备驱动概念字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI,LCD等等都是字符......
  • Apache httpd 入门实战(2)--简单使用
    本文主要介绍Apache的实际使用,文中所使用到的软件版本:Centos7.9.2009、Httpd2.4.55。1、反向代理涉及到Https站点时,安装Apache时需要启用ssl,可参考 Apachehttpd入门实战(1)--概念及安装。1.1、被代理站点为Http站点打开conf/httpd.conf文件,修改或新增相应的配......