Java类是对象吗?

时间:2012-08-16 15:09:50

标签: java oop

我之前读过Java类是类Class的实例。但是现在,我的计算机科学老师说Java类不是对象。

这是真的吗?

5 个答案:

答案 0 :(得分:15)

Java类不是对象。

但是,每个Java类都有一个描述它的Class类的实例 那些实例是对象。

答案 1 :(得分:3)

Java类不是对象,它们是抽象的。

但是,每个Java类都有一个代表它的java.lang.Class类的相应实例。该表示一个对象。但是你不应该把表示误认为是实际的。

这种关系有点类似于音乐和乐谱之间的关系。虽然书面符号代表音乐,但它本身并不是音乐。

这种差异在实践中很少有意义,只要你知道对java.lang.Class个对象有什么用处和什么做不了。

答案 2 :(得分:1)

类(您的代码,甚至是.class文件中的已编译代码)不是对象。在实例化该类之前,您没有对象。

例如,Java.lang.String是一个类。 String s = new String("Hello world");定义String类型的对象。这可能是你的教授所做的区别。

答案 3 :(得分:0)

每个Java类,甚至java.lang.Class都来自java.lang.Object

编辑:

措辞有点含糊不清。 Java类的实例绝对是对象。类本身,不能真正被认为是对象,因为除了“蓝图”类之外,内存中不存在任何内容。

答案 4 :(得分:0)

好吧,如果Class可以理解方法并拥有自己的属性(使用“静态”) 那为什么不将它们视为对象呢?对象可以做到这一点。

但这不是要培养学生的东西,因为这只会使他们感到困惑。 我认为,如果您已经掌握了“类”和“对象”的概念,那么您可以将分类视为一种对象。