Lua面向对象写Student类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HQ354974212/article/details/89402928

  面向对象大家都不陌生了, lua可以使用表(table) , 元表(metatable)来模拟面向对象设计 ,

  我们来使用Lua写一个简单的Student类

-- 声明类型
Student = {};

--声明属性
Student.name ="张三"
Student["age"] =12

-- 设置__index元方法(关键)
Student.__index = Student;



-- 定义构造函数
function Student:Create()

    local instance = {};
    setmetatable(instance, self); --关键,设置元表
    return instance;

end


-- 定义玩耍方法
Student.Play = function()
      print ("玩耍开始了")
end

-- 定义学习方法(使用.)
function Student.Study(s)
    print (s.name.."学习开始了");
end

-- 定义打印方法(使用:)
function Student:Show()

    print ( "姓名:"..self.name ,"年龄:"..self.age);

end

local stu  = Student:Create();

print (stu.name)
print (stu.age)

stu:Show()
stu.Play()
stu.Study(stu)

 运行结果

 

猜你喜欢

转载自blog.csdn.net/HQ354974212/article/details/89402928