Object类九大方法之getClass方法
获取此Object的运行时类.
什么是运行时类?
在创建对象前先要有class文件,这是字节码文件,首先要加载class(字节码)文件,后面才能接着运算.
eg:
Demo类和Class类,对他们的共性进行抽取,类文件都有一个共性特点就是他里面都是源文件描述的那些成员,只不过类文件将他们变成了字节码,变成另一种符号形式而已.
他们既然有共性那就可以进行抽取(但这个共性抽取起来比较麻烦,被抽取的内容不是很具体),抽完以后就形成了类,接着我们用java语言对这个字节码文件进行描述.
能描述字节码文件的类就不需要定义了,他里面有,注意大写的C,小写是关键字,大写是类名.
他是专门用来描述字节码文件的类,无论什么样的字节码文件里面都有字段field,就是属性,也是成员变量,无论什么样的字节码文件,里面都有constructor构造器,无论还什么样的类文件里面都有方法.
上述这些都是类文件的组成部分,因此用这个类描述完了类文件这个事物以后,就可以产生类的对象
java的getClass()方法利用的就是反射机制
所谓的反射可以理解为在运行时期获取对象类型信息的操作,传统的变成方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态的获取这些信息,从而编写更加具有可移植性的代码,严格地说,反射并编程语言的特性,因为在任何一种语言都可以实现反射机制,但是如果编程语言本身支持反射,那么反射的实现就会方便很多.
如果有一个实例那么就可以通过实例的getClass()方法获取该对象的类型类,如果你知道一个类型,那么你可以使用.class()的方法获得该类型的类型类.
eg:
getName():获得该类型的全称名称
getSuperClass():获得该类型的直接父类,如果该类型没有父类,那么返回null
getInterfaces():获取该类型实现的所有接口
getCompanentType():如果该类型是一个数组,那么返回该数组的组件类型.