我之前读过Java类是类Class
的实例。但是现在,我的计算机科学老师说Java类不是对象。
这是真的吗?
答案 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可以理解方法并拥有自己的属性(使用“静态”) 那为什么不将它们视为对象呢?对象可以做到这一点。
但这不是要培养学生的东西,因为这只会使他们感到困惑。 我认为,如果您已经掌握了“类”和“对象”的概念,那么您可以将分类视为一种对象。