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

微商推广网站怎么做手游推广平台代理

微商推广网站怎么做,手游推广平台代理,设计学校排名中国,用阿里云和大淘客做网站0.简单前言 1、面向对象主要四个特征:封装,继承,多态,抽象 2、Lua是种简单精致小巧的语言,其本质是个表(table),变量和方法皆可看作为该表的元素。 P.S. 该博客和代码为个人编写习…

0.简单前言

1、面向对象主要四个特征:封装,继承,多态,抽象
2、Lua是种简单精致小巧的语言,其本质是个表(table),变量和方法皆可看作为该表的元素。

P.S. 该博客和代码为个人编写习惯以及为后续博客内容拓展服务考虑,若有错误等不周到的地方还请包涵以及指出。

1.类

尽管可能不太完美,但我们依旧可以通过元表的方式实现类以及类的继承。

-- 元类
local Rectangle = {area = 0, length = 0, breadth = 0}-- 派生类的方法 new
function Rectangle:new (o,length,breadth)local o = o or {}setmetatable(o, self)		-- 将Rectangle赋值给要返回的对象作为元表self.__index = self		-- 通过 .__index 传递元表元素self.length = length or 0self.breadth = breadth or 0self.area = length*breadth;return o
end-- 派生类的方法 printArea
function Square:printArea ()print("矩形面积为 ",self.area)
end

简单结构就是这样,Square类已经继承Rectangle的属性以及方法,同时还拓展出自己的新方法 printArea(),但实际运用起来并不方便。

2.改进

class类

用于构建模板以及进行类的继承

Class.lua

-- params:要实例的类,继承
function class(classname , ...)local cls = {}local supers = {...}for _ , super in ipairs(supers) dolocal superType = type(super)if superType == "function" thencls.__create = superelseif superType == "table" thencls.__supers = cls.__supers or {}cls.__supers[#cls.__supers + 1] = superendendcls.__index = clscls.__class = classnameif not cls.__supers then-- 没有继承其他类-- 添加默认构造函数-- __index指向自己不变cls.Ctor = function()   end      elseif #cls.__supers == 1 then-- 单继承的情况local super = cls.__supers[1]cls = setmetatable(cls , {__index = super})cls.super = super		-- 模拟super关键字else -- 多继承的情况-- 使index指向一个函数,在索引时遍历父类cls = setmetatable(cls , {__index = function(_ , key)for _ , super in ipairs(cls.__supers) doif super[key] thenreturn super[key]endendend})endcls.New = function(...)-- 前面只是将几个类进行合并,因此在实例时还需进行一次元表local instance = setmetatable({}, cls)instance.class = clsinstance:Ctor(...)return instanceend-- 返回实例return cls
end

实验

创建4个脚本A,B,C,D。
使得C继承A,
D继承A,B。

A.lua

A = class(A)function A:Ctor()print("We create a class A!")
endfunction A:Fun_A()print("This is a function from class A!")
endreturn A

B.lua

B = class(B)function B:Ctor()print("We create a class B!")
endfunction B:Fun_B()print("This is a function from class B!")
endreturn B

C.lua

C = class(C , A)                -- 让C类单独继承A类function C:Ctor()print("We create a class C!")
endfunction C:Fun_C()print("This is a function from class C!")
endreturn C

D.lua

D = class(D , A , B)            -- 让D类同时继承A,B类function D:Ctor()print("We create a class D!")
endfunction D:Fun_D()print("This is a function from class D!")
endreturn D

检验

main.lua

-- 实例以及覆写方法
local test_c = C:New()
local test_d = D:New()-- 子类自身的方法
test_c:Fun_C()
test_d:Fun_D()-- 子类继承的方法
test_c:Fun_A()
test_d:Fun_A()
test_d:Fun_B()-- 没有继承的方法
-- test_c:Fun_B()

结果

We create a class C!
We create a class D!
This is a function from class C! 
This is a function from class D! 
This is a function from class A! 
This is a function from class A! 
This is a function from class B! 

若把注释取消,则直接报attempt to call a nil value (method ‘Fun_B’)

http://www.dinnco.com/news/39857.html

相关文章:

  • 如何用h5自己做网站安卓aso优化
  • 建设美食网站的作用seo网站是什么意思
  • 合肥seo建站今日的最新消息
  • 设计培训培训网站建设友链通
  • 中国企业查询网官网站群seo
  • 深圳市做网站的百度地图导航
  • 设计师配色网站上海外贸seo公司
  • wordpress设置网站关键字宁波网络推广产品服务
  • 武昌网站建设 优帮云南宁优化推广服务
  • wordpress网页小特效网站关键词优化软件
  • 色系网站.千万不要做手游推广员
  • 个人做discuz网站备案学电脑在哪里报名
  • 网站建设捌金手指下拉十四seo常用工具
  • 网站开发开销看seo
  • 上海网站开发开发好的公司电话西安百度竞价代运营
  • 顺德 网站开发 招聘深圳seo优化公司
  • seo网站建设规划抖音关键词挖掘工具
  • 哪些网站做英语比较好网络推广公司运作
  • 泰安做网站建设的深圳seo网络推广
  • 疫情防控措施优化南宁seo网络优化公司
  • 做网站建设要什么证百度快照收录入口
  • 沈阳哪里可以做网站营销百度学术查重
  • 重庆公司社保多少钱一个月sem优化是什么
  • 摄影展示网站源码竞价账户
  • 网站开发凭证做什么科目老王搜索引擎入口
  • 自己做网站需要什么媒体135网站
  • 广州最穷的三个区seo指导
  • 游戏网站开发难度潍坊seo按天收费
  • 舟山市定海区建设规划局网站网络营销活动策划方案
  • 宁陵做网站的公司软文推广300字