Java类Class
(扩展Object
)和class
关键字(用于创建类的单词)之间有什么区别?
答案 0 :(得分:2)
在编程中,反射是程序通过分析运行时细节(例如对象实例的实际实现类)来在运行时修改其自身结构和行为的能力。 Class
类是Java API的一部分,用于反射。 class
关键字是标记新类定义的Java语言结构,而Class
类用于将类和变量类型本身键入。这是程序使用类定义本身作为编程对象的一种方式(例如,您可以通过编程方式枚举类的公共方法)。
此外,任何类型为o
的实例Object
(即Java中的任何对象)都会继承getClass
实例方法。这将生成对象的实际运行时类,而不管存储对象的变量的编译时代码声明类。例如,对于某些已定义的类X
:
Object o = new X();
Class<?> type = o.getClass();
type
现在将成为对X
类本身的引用,它与Class<?>
泛型描述匹配,因为X
类实际上是Class<X>
类的实例1}}。
每个定义的类也有一个名为class
的静态变量,它返回类本身。在类X的实例上调用getClass
将返回与该类'Class<X>
静态变量相同的class
实例:
("some string").getClass() == String.class
值得注意的是,原始类型都具有静态class
变量,即使它们不是对象。值得注意的是,原始类型的class
与其wrapper class的class
不同:
int.class != Integer.class
答案 1 :(得分:1)
Class
是一个Java类,就像Object
一样,String
是类。
另一方面,如果我们说:
Class<?> c = String.class;
我们得到的回报是类型为Class
的{{1}}对象:
String
简而言之,两者基本相同,但您可以使用Class<String>
类保留String.class
对象的引用。
它们用于Java反射,您可以在这里了解更多信息:http://docs.oracle.com/javase/tutorial/reflect/
答案 2 :(得分:0)
Class
是一个&#34; Java类&#34;提供操作&#34; Java类&#34;的方法。而class
是一个Java关键字,用于声明&#34; Java类&#34;
答案 3 :(得分:0)
Class
是一个Java类类型(扩展了Object类,如你所说),&#34;一个可扩展的程序代码模板,用于创建对象,为状态(成员变量)提供初始值,行为的实现(成员函数,方法)。&#34; - Wikipedia
另一方面,class
是关键字,即语言编译器(或其他情况下的解释器)的保留字,不能用作标识符或任何其他用途。此特定关键字用于声明自定义类类型。
答案 4 :(得分:0)
Class
个对象是类Objects
的特殊类型java.lang.Class
,用于表示类定义。
class关键字是一个关键字,用于表示可以放置方法和变量的类。使用类对象最重要的是执行 Reflection API ,它可以用来动态创建对象,调用方法和内省它们。您还可以使用java.lang.ClassLoader