Motto:

"Clean programming is like art."


Lua‎ > ‎

Create Class

This example shows, how to create user class object with LUA language similar to other OOP languages.

-- | ---------------------------------------------------------------------------
--
 | Define class name
--
 | ---------------------------------------------------------------------------

TMyClass
 = {}



-- | ---------------------------------------------------------------------------
--
 | CONSTRUCTOR
--
 | ---------------------------------------------------------------------------

function TMyClass:New()

    o = 
            var1 = 10
            var2 = null
            my_fnc = function (a) print(a) end 
        

    setmetatable(o, self)
    self.__index = self

    return o

end

-- | ---------------------------------------------------------------------------
--
 | Method #1
--
 | ---------------------------------------------------------------------------

function TMyClass:SetVar1(v1)

    self.var1 = v1

end

-- | ---------------------------------------------------------------------------
--
 | Method #2
--
 | ---------------------------------------------------------------------------

TMyClass.SetVar3 =  function (v1) TMyClass.var1 = v1
                        print(TMyClass.var1)
                    end
                    
-- | ---------------------------------------------------------------------------
--
 | Method #3
--
 | ---------------------------------------------------------------------------

function TMyClass:GetVar1(v1)

    return self.var1
end


-- *****************************************************************************
--
 USING
--
 *****************************************************************************

--
 create instance of TMyClass

myClass  = TMyClass:New()

-- call class method

myClass:SetVar1(100)

-- direct acces

myClass.var2 = 101

-- test result

print (myClass:GetVar1())
print (myClass.var2)
print (myClass.SetVar3(222))

myClass.my_fnc(123)