类是面向对象语言的对象

Din*_*kur 8 oop class object instance

类是面向对象语言的对象吗?如何通过名称来访问类方法class.method name?(内部工作).这是一样的object.method吗?

并且如果Class与object相同(属于OO中的每个东西的超类的对象类)并且我们实例化它(它的对象),我们可以创建除Object类之外的类的实例的实例.

(主要是对理论观点感兴趣,即使实际上并不需要)

And*_*ier 6

嗯,这取决于你使用的语言; 在纯OO语言中,一切都是对象(例如Smalltalk),类也不例外,也是对象.在其他语言中,类不被视为一等公民,它们只是特殊的语言结构或原始类型.从现在开始,由于其反射支持和同质风格,我将使用Smalltalk作为目标语言.

如何通过class.method名称的名称访问类方法?(内部工作).这与object.method相同吗?

由于类是对象,因此它们又是类(元类)的实例.因此,向类发送消息只是向对象发送消息,该对象的作用是表示类的行为方式.那里有很多文献,你可以在这里这里看一些例子.

并且如果Class与object相同(属于OO中的每个东西的超类的对象类)并且我们实例化它(它的对象),我们可以创建除Object类之外的类的实例的实例.

我不确定我是否在这里关注你,但为了澄清它并不总是Object所有类的超类.问题是如果你开始遵循类和元类之间的关系,你可能会达到一种无限循环.不同的语言以不同的方式解决这个问题,例如,在VisualWorks Smalltalk中,它Object是一个子类nil.事情是它nil也是一个对象(记住,一切都是一个对象),它实际上代表"没有".正如您所料,nil是一个class(UndefinedObject)的实例,它还实现了一些类协议.因此,它可以用来表示一个没有继承的类表单:).

最后,我不知道这是否能回答你的问题,但是,你可以做很多很酷的事情,具有全面的反思能力,比如动态创建新课程或重塑现有课程.我将在这里留下一些您可能会对此主题感兴趣的文档: