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
  • 相关阅读:
    爬虫之Selenium库
    爬虫之pyquery库
    爬虫之BeautifulSoup库
    爬虫之Requests库
    爬虫之Re库
    在Flask中使用Celery
    Celery-分布式任务队列
    MongoDB
    Redis Cluster
    如何使用mongo shell
  • 原文地址:https://www.cnblogs.com/wwgk/p/11623096.html
Copyright © 2011-2022 走看看