“类不是对象”是什么意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“类不是对象”是什么意思?相关的知识,希望对你有一定的参考价值。

从GoF书中:

原型对于像C ++这样的静态语言特别有用,其中类不是对象,几乎没有类型信息在运行时可用。在像Smalltalk这样的语言中,它的重要性降低了或目标C,它们提供了相当于原型(即类对象),以创建每个类的实例。这种模式是建立的进入基于原型的语言,例如Self [US87],其中所有对象通过克隆原型进行创建。

“类不是对象”是什么意思?

不是总是这样吗?

类成为对象意味着什么?

答案

在某些语言中,当您声明一个类时,语言运行时会在内存中创建一个对象来表示该类及其属性;然后您可以在该类对象上调用方法以找出该类的属性或创建该类的对象,依此类推。

C ++没有该功能(主要是因为C ++旨在最大程度地减少运行时开销);没有对象代表该类。 (最接近的是RTTI的type_info对象,但这实际上只是一个包含有关类的某些信息的对象,而不是类本身的完整表示))

另一答案

类与原型对象之间的讨论/差异很多,并且很大程度上取决于语言所允许的内容,以及它定义和操作对象的难易程度/灵活性。

以上是关于“类不是对象”是什么意思?的主要内容,如果未能解决你的问题,请参考以下文章

多态的深入理解

Java 反射

Java反射简介

Java 学习

Java同步静态方法:锁定对象或类

Java高级-反射机制