lua面向对象铺垫

Account =
{
  balance = 0,
  withdraw = function(self, v)
    self.balance = self.balance - v
  end
}
--:操作符隐藏了self或者this参数,操作方便
function Account:deposit(v)
  self.balance = self.balance + v
end
--用.操作就需要指定操作的类型
Account.deposit(Account, 200.00)
Account:withdraw(100.00)
时间: 2024-10-12 12:35:29

lua面向对象铺垫的相关文章

Lua程序设计之————Lua面向对象2

----------------------------------------------------------- Lua面向对象3 local smartMan = { name = "Tinywan", age = 26, money = 800000, sayHello = function() print("Tinywan say 大家好") end } local t1 = {} local mt = { __index = smartMan, __n

Lua面向对象----类、继承、多继承、单例的实现

(本文转载)学习之用,侵权立删! 原文地址   http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&utm_medium=referral lua面向对象实现: 一个类就像是一个创建对象的模具.有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例.lua则没有类的概念,每个对象只能自定义行为和形态.不过,要在lua中模拟类也并不困难. lua中,面向对象是用元表这个机制来实现.

Lua程序设计之————Lua面向对象1

完整代码 local mt = {} mt.__add = function(t1,t2) print("两个Table 相加的时候会调用我") end local t1 = {} local t2 = {} -- 给两个table 设置新的元表,一个元表就是一个table的值 setmetatable(t1,mt) -- meta:元素 setmetatable(t2,mt) -- 进行相加操作 local t = t1 + t2 print(t) --[[输出结果 两个Table

让lua面向对象--lua和android

让lua面向对象 lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现: 1.使用metatable的__index域实现,实现的时候需要利用的lua语言的一些特性才可以实现,主要有: a.将table b作为table a的一个prototype的方法:setmetatable(a, {__index = b}); b

lua面向对象实现(实例化对象、继承、多态、多继承、单例模式)

lua面向对象实现: 一个类就像是一个创建对象的模具.有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例.lua则没有类的概念,每个对象只能自定义行为和形态.不过,要在lua中模拟类也并不困难. lua中,面向对象是用元表这个机制来实现. 首先,一般来说一个表和它的元表是不同的个体(不属于同一个表),在创建新的表时,不会自动创建元表. setmetatable函数:设置元表 setmetatable( 表1 , 表2 )  将表2挂接为表1的元表,并且返回经过挂接后的表1

Lua面向对象设计

面向对象的基础是类,但Lua中没有提供类的概念,所以我们需要利用Lua现有的机制来实现类似于类的有关oop的一整套概念.基本方案是使用table来实现类机制,并且结合使用self参数和冒号操作.我们先来看看self参数和冒号操作符的用法: self参数的使用是很多面向对象语言的要点,大多数OO语言将这种机制隐藏起来,这样程序员不必声明这个参数(虽然仍然可以在方法内使用这个参数).Lua也提供了通过使用冒号操作符来隐藏这个参数的声明(通过冒号来声明函数).先来看下这段代码(这里面还不涉及到类的定义

Lua面向对象编程

Lua中的table就是一种对象,看以下一段简单的代码: 1 local tb1 = {a = 1, b = 2} 2 local tb2 = {a = 1, b = 2} 3 local tb3 = tb1 4 5 if tb1 == tb2 then 6 print("tb1 == tb2") 7 else 8 print("tb1 ~= tb2") 9 end 10 11 tb3.a = 3 12 print(tb1.a) 上述代码会输出tb1 ~= tb2.

Lua 面向对象

面向对象特征 1) 封装:指能够把一个实体的信息.功能.响应都装入一个单独的对象中的特性. 2) 继承:继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展.这有利于减少重复编码,提高软件的开发效率. 3) 多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果.在运行时,可以通过指向基类的指针,来调用实现派生类中的方法. 4)抽象:抽象(Abstraction)是简化复杂的现实问题的途径,它可以为具体问题找到最恰当的类定义,并且可以在最恰当

【quick-cocos2d-x】Lua 面向对象(OOP)编程与元表元方法

版权声明:本文为博主原创文章,转载请注明出处. 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物. 早期的计算机编程是基于面向过程的方法,通过设计一个算法就可以解决当时的问题.随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题.面向过程式的编程思想很难良好的解决这些复杂的问题,通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析.设计与编程.同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统.  但是