11

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

哪个是真的?

4

5 回答 5

20

Java 类不是对象。

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

于 2012-08-16T15:11:49.243 回答
6

Java 类不是对象,它们是一种抽象。

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

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

不过,这种差异在实践中并不重要,只要您知道您可以对java.lang.Class对象做什么和不能做什么。

于 2012-08-16T15:15:39.583 回答
1

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

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

于 2012-08-16T15:14:09.753 回答
1

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

但这不是要教给学生的东西,因为它只会使他们感到困惑。我想如果你已经掌握了类和对象的概念,那么你可以把类看作是一种对象。

于 2020-08-04T18:08:21.830 回答
0

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

编辑:

措辞有点模棱两可。Java 类的实例绝对是对象。类本身不能真正被视为对象,因为除了类“蓝图”之外,内存中不存在任何东西。

于 2012-08-16T15:10:39.567 回答