The class doesn't have a concept of name, when you do a class Object{} you actually create a field named "Object" into the root table which points to the Object class.
Here are some alternatives:
class Object
{
static ClassName = "Object"
}
class Object2 < ClassName = "Object2" >
{
function GetClassName()
{
return getclass().getattributes().ClassName;
}
}
local obj = Object();
print(obj.ClassName);
local obj2 = Object2();
print(obj2.GetClassName());