当前位置: 首页 > wzjs >正文

中国企业信息网官方网站如何做情趣网站

中国企业信息网官方网站,如何做情趣网站,wordpress edu2.0,常州建设工程信息网lua实现面向对象封装/继承/多态 lua实现面向对象(封装/继承/多态) lua实现面向对象(封装/继承/多态) print("***********面向对象**********") print("*************封装************") --表就是表现类的一种形式 --实现了new方法:本质上是创建一个空表&a…

lua实现面向对象封装/继承/多态

  • lua实现面向对象(封装/继承/多态)

lua实现面向对象(封装/继承/多态)

print("***********面向对象**********")
print("*************封装************")
--表就是表现类的一种形式
--实现了new方法:本质上是创建一个空表,__index,元表
--如果子表寻找某元素时在自身找不到时,会去元表的__index中寻找
--修改创建出来的对象的属性变量时: 为这个空表对象新建一个成员属性
--冒号:自动将调用这个函数的对象作为第一个参数传入。self代表函数调用者
Object={}
Object.id=1function Object:Test()print(self.id)
end
--冒号 自动将调用这个函数的对象 作为第一个参数传入 
function Object:new()--self表示默认传入第一个参数--对象就是变量 返回一个新的变量--返回的内容 本质上就是表变量local obj={}self.__index=selfsetmetatable(obj,self)return obj
endlocal myObj=Object:new()
local myObj2=Object:new()--对空表中 声明一个新的属性 叫做id
myObj.id=3
myObj:Test()myObj2.id=2
myObj2:Test()print("*************继承************")
--写一个继承的方法(_G,元表,__index)
function Object:subClass(classname)--_G是总表 所有声明的全局变量(以键值对存储)--在_G表中注册_G[classname]={}--相关继承的规则(元表)local obj=_G[classname]--设置Object的__index表为Objectself.__index=self--给子类定义一个属性base base属性代表父类obj.base=self--设置classname的元表为Objectsetmetatable(obj,self)
end
--创建类(Person)
--调用Person类的new方法
--实际上调用的是Person元表(Object)中的new方法
--new 方法中将调用者的__index设置为调用者
--并返回一个将调用者视为元表的表对象
--该表对象如果没找到元素会在元表__index(此时调用者为它的元表,且调用者的__index是它本身)里面找
Object:subClass("Person")
local p1=Person:new()
print(p1.id)
print("修改值为100")
p1.id=100
print(p1.id)Object:subClass("Monster")
local m1=Monster:new()
print(m1.id)
print("修改值为200")
m1.id=200
print(m1.id)
print("*************多态************")
--相同行为 不同表现 就是多态
--相同方法 不同执行逻辑 就是多态
--相同方法名 子类有不同的处理逻辑
--直接重写方法
--如果想要保留父类逻辑执行
--加入自定义属性base
--在subclass方法中赋值
--坑点:通过base调用父类方法时候,如果改变属性一定不要使用:,而是通过.将自己传入第一个参数进入父类函数
Object:subClass("GameObject")
GameObject.posX=0
GameObject.posY=0
--GameObject 定义move方法
function GameObject:Move()--赋值会新建变量--查询不到会找元表的__index表(self->player->gameobject)self.posX=self.posX+1self.posY=self.posY+1print(self.posX)print(self.posY)
endGameObject:subClass("Player")--多态 相同方法 不同执行逻辑
--相同行为 不同表现
function Player:Move()--调用Player父类(GameObject/Object)的方法--传递自己的参数self(而不是base)self.base.Move(self)
endlocal b=Player:new()b.posX=3 
b:Move()-- local b1=Player:new()
-- b1.posX=3 
-- b1:Move()

文章转载自:

http://I39gKuuF.htmhL.cn
http://zvfJhPEU.htmhL.cn
http://uRvoZQsk.htmhL.cn
http://0CjyJwF2.htmhL.cn
http://nWQrhasi.htmhL.cn
http://IvngZYr7.htmhL.cn
http://CaK823UZ.htmhL.cn
http://oISVnAdP.htmhL.cn
http://ar6fGBPP.htmhL.cn
http://5QH29IcB.htmhL.cn
http://dAxSKbcm.htmhL.cn
http://VatUzpvS.htmhL.cn
http://Zy5lop4e.htmhL.cn
http://QGN76dhy.htmhL.cn
http://KH9AJBiq.htmhL.cn
http://rr5md4z6.htmhL.cn
http://lyvHCMsP.htmhL.cn
http://c1iLVQsQ.htmhL.cn
http://n9t0E6Jf.htmhL.cn
http://86quEaLV.htmhL.cn
http://biD6dSVg.htmhL.cn
http://DpDssUyN.htmhL.cn
http://G6f5EDlp.htmhL.cn
http://sq5xm0ZG.htmhL.cn
http://B4iPQ1E9.htmhL.cn
http://Oa0aOPpQ.htmhL.cn
http://uf9T73E0.htmhL.cn
http://100G58Sv.htmhL.cn
http://PSyxxpUV.htmhL.cn
http://jOXFpB3v.htmhL.cn
http://www.dtcms.com/wzjs/749386.html

相关文章:

  • 邯郸百度网站建设wordpress目录分类与菜单
  • 浙江中企建设集团有限公司网站云服务器 虚拟机
  • 网站做任务挣钱wordpress 引用图片不显示
  • 泉州企业网站开发公司企业logo设计
  • 电子网站开发整形网站 源码
  • 网站建设php有哪些宿州品牌网站建设公司
  • 个人网站建设技术腾讯云 一键wordpress
  • 网站认证要钱零基础学习网站开发
  • 凡科建站官网宝坻网站建设公司
  • 牙科医院网站开发有了服务器怎么做网站
  • 网站建设发布教程视频wordpress获取广告js
  • 在那些网站可以接兼职做专业企业网站制作怎么做
  • 网站开发前端站长工具域名备案查询
  • 网站没建好可以备案吗centos wordpress建站
  • 网站建设专家排名微信答题小程序制作
  • 濮阳网站建设陈帅河南城乡建设部网站
  • 南京网站备案dw个人网站制作
  • 企业网站建设与运营计划书企业网站域名在哪申请
  • 孝感网站开发优搏好钢化网
  • 乐陵网站制作平面设计培训需要学什么
  • 网站建设潍坊网站开发教程 视频
  • 局域网站建设模版做营销型网站要多少钱
  • 包小盒设计网站官网不用cms怎么做网站
  • 德兴网站seocentos 部署wordpress
  • 做微信公众号页面的网站标志与设计
  • 网站代码在哪看好的网站样式
  • 做金融网站中小学学校网站建设
  • 建什么类型的网站访问量比较大torrentkitty磁力官网
  • 12306网站做的好还是百度做的好外贸企业网站开发
  • 青岛高端模板建站网时 网站服务器租赁