class

2019-04-18 18:39 更新

cf中的class

class 意译为'类', 是对'对象'的一种抽象描述. 多用与各种面相对象编程语言中.

lua语言没有原生的class类型, 但是对class的wrapper提供了基本构建的元方法.

cf对此为方便描述内置对象与内置库封装, 使用lua table的相关元方法建立了最基本的class模型.

cf虽然规定了一套最基本的class创建、使用方法, 但是不会限制用户对class的操作方法与操作习惯.

cf为内简化对基于class封装的内置库的学习成本与代码可读性, 去除了class原本拥有的'继承'概念.

cf的class的运行流程

1. 定义一个class.

2. 添加用户自定义方法.

3. 等待用户使用class进行创建.

4. 使用new方法根据类来创建一个对象.

5. 操作对象.

cf如何使用class

1.导入class函数

  local class = require "class"

class库已经添加到cf框架都路径中, 可以在任意地方直接导入

2. 创建一个基本的lua class

  local Humen = class("Humen")


  function Humen:ctor(opt)
    -- 不存在的ctor会发出警告
    -- 即使不需要初始化, 请定义后留空
  end

ctor内部发生错误将会抛出异常.

3. 初始化lua class

  local Humen = class("Humen")


  function Humen:ctor(opt)
    self.name = opt.name
    self.age = opt.age
    self.sex = opt.sex
  end


  local man = Humen:new({name = "水果糖", age = 27, sex = 'man'})


  print(man.name, man.age, man.sex)

ctor仅为初始化使用, new方法将会返回一个成功创建的对象.

4. 为class增加一些方法

  local Humen = class("Humen")


  function Humen:ctor(opt)
    self.name = opt.name
    self.age = opt.age
    self.sex = opt.sex
  end


  function Humen:run()
    print("I'm run.")
  end


  local man = Humen:new({name = "水果糖", age = 27, sex = 'man'})


  print(man.name, man.age, man.sex)


  man:run()

5. 为class的自定义方法添加一些接受参数

  local Humen = class("Humen")


  function Humen:ctor(opt)
    self.name = opt.name
    self.age = opt.age
    self.sex = opt.sex
  end


  function Humen:setAge(age)
    self.age = age
  end


  function Humen:setName(name)
    self.name = name
  end
  local man = Humen:new({name = "水果糖", age = 27, sex = 'man'})


  print(man.name, man.age, man.sex)


  man:setName("Candy")
  man:setAge(28)

最后

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号