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

ui最好的网站软件商店安装最新版下载

ui最好的网站,软件商店安装最新版下载,浙江省建设银行纪检官方网站,建设部网站注销一级建造师Lua实现面向对象 面向对象核心三要素Lua面向对象大致原理面向对象示例继承与多态示例 面向对象核心三要素 1.封装:对一个事物的抽象为一些属性和行为动作的集合,封装将属性和行为动作(操作数据的方法)绑定在一起,并隐藏…

Lua实现面向对象

  • 面向对象核心三要素
  • Lua面向对象大致原理
    • 面向对象示例
    • 继承与多态示例

面向对象核心三要素

1.封装:对一个事物的抽象为一些属性和行为动作的集合,封装将属性和行为动作(操作数据的方法)绑定在一起,并隐藏对象的内部实现细节,只暴露给外部部分接口。
2. 继承是一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码重用和扩展。
3. 多态允许一个接口或方法在不同类的实例上有不同的表现形式。通过多态,可以编写更通用、更灵活的代码。

Lua面向对象大致原理

在 Lua 中,面向对象编程(OOP)的概念是通过表(table)和元表(metatable)来实现的。Lua 并没有内建的类系统,但通过灵活的元表机制,可以实现类、继承和多态等 OOP 特性。

面向对象示例

-- 下面通过实现一个简易的链表功能,来展示Lua实现面向对象的大致过程
local Node = {}
Node.__index = Node
Node.new = function(value)return setmetatable({value = value,next = nil},Node)
endlocal LinkList = {}
LinkList.__index = LinkList
LinkList.new = function()return setmetatable({head = nil},LinkList)
end
function LinkList:Insert(value)local node = Node.new(value)if not self.head thenself.head = nodeelselocal curNode = self.headwhile curNode.next docurNode = curNode.nextendcurNode.next = nodeend
endfunction LinkList:InsertByTable(valuetbl)for k,v in ipairs(valuetbl) dolocal node = Node.new(v)if not self.head thenself.head = nodeelselocal curNode = self.headwhile curNode.next docurNode = curNode.nextendcurNode.next = nodeendend
endfunction LinkList:Print()if not self.head thenprint("List has no node")elselocal curNode = self.headwhile curNode doprint("Cur Node Value:",curNode.value)curNode = curNode.nextendend
endfunction LinkList:Reverse()if not self.head thenprint("List has no node")elselocal preNode = nillocal curNode = self.headwhile curNode dolocal nextNode = curNode.nextcurNode.next = preNodepreNode = curNodecurNode = nextNodeendself.head = preNodeend
endlocal l = LinkList.new()
--l:Insert(2)
--l:Insert(4)
--l:Insert(5)
--l:Insert(1)
--l:Insert(0)
l:InsertByTable({1,2,3,4,"a"})
l:Print()
print("---------------------")
l:Reverse()
l:Print()

继承与多态示例

-- 定义一个基类
local Shape = {}
Shape.__index = Shapefunction Shape:new()local instance = setmetatable({}, self)return instance
endfunction Shape:area()return 0
end-- 定义一个子类,继承自 Shape
local Rectangle = setmetatable({}, Shape)
Rectangle.__index = Rectanglefunction Rectangle:new(width, height)local instance = Shape.new(self)instance.width = widthinstance.height = heightreturn instance
endfunction Rectangle:area()return self.width * self.height
end-- 定义另一个子类,继承自 Shape
local Circle = setmetatable({}, Shape)
Circle.__index = Circlefunction Circle:new(radius)local instance = Shape.new(self)instance.radius = radiusreturn instance
endfunction Circle:area()return math.pi * self.radius ^ 2
end-- 创建子类的实例,并展示多态行为
local shapes = {Rectangle:new(3, 4), Circle:new(5)}for _, shape in ipairs(shapes) doprint("Area:", shape:area())  -- 分别输出矩形和圆的面积
end
http://www.yayakq.cn/news/946119/

相关文章:

  • 主视觉设计网站wordpress vip 插件下载
  • 水利建筑工程网站从什么网站找做app的代码
  • 网站建设后台管理便捷遵义网站制作
  • 网站建设和维护一年的费用如何建设合法的网站
  • 政务移动门户网站建设园区二学一做网站
  • 如何鉴定网站做的好坏wordpress百度cdn
  • 北京朝阳区房价2022最新价格网络推广与seo的区别在哪里
  • 浙江省火电建设公司网站html5建设网站
  • 跨境电商工具类产品的网站wordpress更改域名 后台
  • 毕业设计做网站 答辩会问什么问题织梦网站新闻列表调用
  • 网站导航栏设计代码网站模板的使用
  • 网站建设的种类网站制作价格推 荐
  • 九龙坡区建设二校的网站一键优化大师下载
  • 导航门户网站怎么做郯城建设局网站
  • 做软件的声称发现网站漏洞做营销型网站需要注意哪些点
  • localhost怎么做网站wordpress文章设置到导航栏
  • 郴州网站建设流程简体中文wordpress5.2下载
  • 网络营销推广方案公司杭州百度推广优化排名
  • 抽奖网站怎么做哪里有做php网站免费教程
  • 怎样做一个公司网站赣榆区住房和城乡建设局网站
  • 南昌网站建设冲浪者广州建设网站开发
  • 苏州有哪些做网站该网站想要跳转百度app
  • 网站页面设计要求全网响应式网站
  • 能不能模仿百度一样做搜索引擎网站成都html5网站设计
  • 厦门 网站建设闽icp如何创建网站的详细步骤
  • 备案网站管理系统互联网保险有哪些
  • 网站制作怎么做语音搜索框做泵阀到哪个网站好
  • 河津做网站深圳网站推广活动方案
  • 海口网站建设的开发方案平台公司名称
  • 自己做的网站可以百度推广吗北京学做网站