zoukankan      html  css  js  c++  java
  • Lua 面向对象

    面向对象
      组成:成员变量、成员函数
      要求:每个对象,由类生成,有自己的成员变量、使用共同的成员函数

    Lua构造面向对象
      原理
        用table表示成员变量
        用function表示成员函数
        用metatable关联对象和类
      实现

     1 -- 空类
     2 Class = {}
     3 
     4 -- 指向自己
     5 Class.__index = Class
     6 
     7 -- 成员变量
     8 Class.val = "Class"
     9 
    10 -- 成员函数
    11 function Class:print()    --相当 Class.print(self)
    12     print("Class:print val = "..self.val)
    13 end
    14 
    15 function Class:modify()
    16     self.val = "modify"
    17 end
    18 
    19 -- 构造函数
    20 function Class:new(initVal)
    21     -- 申请空间
    22     local object = {}
    23 
    24     -- 初始数据
    25     object.val = initVal
    26 
    27     -- 关联class
    28     setmetatable(object,Class)
    29 
    30     -- 返回对象
    31     return object
    32 end
    33 
    34 -- test
    35 local obj = Class:new("object")
    36 print("before modify")
    37 Class:print()
    38 obj:print()
    39 print("after modify")
    40 obj:modify()
    41 Class:print()
    42 obj:print()
    43 
    44 -- output
    45 -- before modify
    46 -- Class:print val = Class
    47 -- Class:print val = object
    48 -- after modify
    49 -- Class:print val = Class
    50 -- Class:print val = modify
  • 相关阅读:
    python学习之控制流1
    python学习之字符串转换
    python学习之数据类型与运算符号
    python之获取微信好友列表并保存文档中
    python之微信自动发送消息
    python之微信好友统计信息
    java并发编程--AtomicInteger
    java.time学习
    chrome插件
    classpath和classpath*
  • 原文地址:https://www.cnblogs.com/wwgk/p/11623096.html
Copyright © 2011-2022 走看看