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

网络优化工程师前景廊坊seo优化排名

网络优化工程师前景,廊坊seo优化排名,网络营销方式和平台推广,免费发布信息网站b2b面向对象编程(OOP)是现代编程时代中使用最广泛的编程技术之一。 OOP的特征 类(Class) - 类是用于创建对象的可扩展模板。 对象(Objects) - 它是类的实例,并为其分配了单独的内存空间。 继承(Inheritance) - 这是一个概…

面向对象编程(OOP)是现代编程时代中使用最广泛的编程技术之一。

OOP的特征

  • 类(Class)                       - 类是用于创建对象的可扩展模板。

  • 对象(Objects)               - 它是类的实例,并为其分配了单独的内存空间。

  • 继承(Inheritance)       - 这是一个概念,一个类的变量和函数被另一类继承。

  • 封装(Encapsulation)  - 这是将数据和函数合并到一个类中的过程。

您可以借助Table和Lua的一流函数在Lua中实现面向对象。通过将函数和相关数据放入表中,可以形成一个对象。继承可以在Meta的帮助下实现,它为父对象中不存在的函数(方法)和字段提供了一种查找机制。

Lua中的Table具有独立其值的对象特征。具有相同值的两个对象是不同的对象,而一个对象在不同时间可以具有不同的值,但是它始终是同一对象。

让无涯教程考虑一个简单的数学示例。经常遇到需要处理不同形状(如圆形,矩形和正方形)的情况。

形状可以具有公共属性Area。因此,可以从具有公共属性区域的基础对象形状扩展其他形状。每个形状都可以具有自己的属性和函数,如矩形可以具有属性长度,宽度,面积作为其属性,以及printArea和calculateArea作为其函数。

创建类

下面显示了具有三个属性区域,长度和宽度的矩形的简单类实现。它还具有printArea函数以打印计算出的区域。

-- Meta class
Rectangle = {area = 0, length = 0, breadth = 0}-- Derived class method newfunction Rectangle:new (o,length,breadth)o = o or {}setmetatable(o, self)self.__index = selfself.length = length or 0self.breadth = breadth or 0self.area = length*breadth;return o
end-- Derived class method printAreafunction Rectangle:printArea ()print("The area of Rectangle is ",self.area)
end

创建对象

创建对象是为类分配内存的过程。每个对象都有其自己的内存并共享公共类数据。

r=Rectangle:new(nil,10,20)

访问属性

无涯教程可以使用点运算符访问类中的属性,如下所示:

print(r.length)

访问函数

您可以使用带有该对象的冒号运算符访问成员函数,如下所示-

r:printArea()

分配内存并设置初始值。可以将初始化过程与其他面向对象语言的构造函数进行比较。

完整的示例

来看一个在Lua中使用面向对象的完整示例。

-- Meta class
Shape = {area = 0}-- Base class method newfunction Shape:new (o,side)o = o or {}setmetatable(o, self)self.__index = selfside = side or 0self.area = side*side;return o
end-- Base class method printAreafunction Shape:printArea ()print("The area is ",self.area)
end-- Creating an object
myshape = Shape:new(nil,10)myshape:printArea()

当您运行上述程序时,您将获得以下输出。

The area is 	100

Lua 继承

继承是将简单的基础对象(如形状)扩展为矩形,正方形等的过程。它在现实世界中经常用于共享和扩展基本属性和函数。

来看一个简单的类扩展。有一个如下所示的类。

-- Meta class
Shape = {area = 0}-- Base class method newfunction Shape:new (o,side)o = o or {}setmetatable(o, self)self.__index = selfside = side or 0self.area = side*side;return o
end-- Base class method printAreafunction Shape:printArea ()print("The area is ",self.area)
end

可以将形状扩展到方形,如下所示。

Square = Shape:new()-- Derived class method newfunction Square:new (o,side)o = o or Shape:new(o,side)setmetatable(o, self)self.__index = selfreturn o
end

Lua 覆盖

可以覆盖基类函数,而不是使用基类中的函数,派生类可以有自己的实现,如下所示:

-- Derived class method printAreafunction Square:printArea ()print("The area of square is ",self.area)
end

Lua 继承示例

无涯教程可以借助另一个新方法,借助元表,来扩展Lua中的简单类实现,如上所示。基类的所有成员变量和函数都保留在子类中。

-- Meta class
Shape = {area = 0}-- Base class method newfunction Shape:new (o,side)o = o or {}setmetatable(o, self)self.__index = selfside = side or 0self.area = side*side;return o
end-- Base class method printAreafunction Shape:printArea ()print("The area is ",self.area)
end-- Creating an object
myshape = Shape:new(nil,10)
myshape:printArea()Square = Shape:new()-- Derived class method newfunction Square:new (o,side)o = o or Shape:new(o,side)setmetatable(o, self)self.__index = selfreturn o
end-- Derived class method printAreafunction Square:printArea ()print("The area of square is ",self.area)
end-- Creating an object
mysquare = Square:new(nil,10)
mysquare:printArea()Rectangle = Shape:new()-- Derived class method newfunction Rectangle:new (o,length,breadth)o = o or Shape:new(o)setmetatable(o, self)self.__index = selfself.area = length * breadthreturn o
end-- Derived class method printAreafunction Rectangle:printArea ()print("The area of Rectangle is ",self.area)
end-- Creating an objectmyrectangle = Rectangle:new(nil,10,20)
myrectangle:printArea()

当运行上面的程序时,将获得以下输出-

The area is 	100
The area of square is 	100
The area of Rectangle is 	200

在上面的示例中,从基类Square创建了两个派生类-Rectangle和Square。可以在派生类中重写基类的函数。在此示例中,派生类覆盖函数printArea。

Lua - 面向对象 - 无涯教程网无涯教程网提供面向对象编程(OOP)是现代编程时代中使用最广泛的编程技术之一。 OOP的特征 类(Class) ...https://www.learnfk.com/lua/lua-object-oriented.html

http://www.zhongyajixie.com/news/23913.html

相关文章:

  • 做家教网站资质seo关键词优化外包
  • 广州市网站建设价格惠州seo博客
  • 网站建设新闻动态相亲网站排名前十名
  • 西宁网站建设模板1688官网入口
  • 中软国际软件培训收费郑州seo顾问
  • webmin 添加网站厦门seo网站推广
  • 永年网站建设2023网站分享
  • 做网站怎样才能接单数字营销工具
  • 华为手机官方网站登录友链交换不限内容
  • 如何做网站优化seo百度软件商店
  • 门户网站建设项目招标外链seo招聘
  • 用路由器做网站淘宝直通车
  • 网站建设目标 优帮云关键词快速优化排名软件
  • 海阳市最新新闻热点优化大师官方免费下载
  • 网站建设特点河北疫情最新情况
  • 哪种语言做网站最合适抚州网络推广
  • 济南互联网网站建设价格google关键词查询工具
  • 58这种网站怎么做正规接单赚佣金的平台
  • 店铺设计公司湖北seo网站推广
  • 苏州做网站推广的公司哪家好seo的搜索排名影响因素主要有
  • 上海闵行做网站网络广告策划方案
  • 安徽网站建设流程公司网站域名怎么注册
  • ps做的网站保存不了jpg百度推广手机版
  • 网站建设的目标是什么?提供了哪些栏目?2023年7 8月十大新闻
  • 游戏网站cms推广软件排行榜前十名
  • 公司网站建设ppt用html制作淘宝网页
  • 找出网站所有死链接石家庄最新新闻事件
  • 陕西工程建设标准化信息网9个广州seo推广神技
  • 做网站开发找哪家公司肇庆网站搜索排名
  • 北京网站开发要多少钱谷歌浏览器下载安装2021最新版