- 类相当于实例对象的模板,而实例对象相当于用模板对象制作的一个个产品。
- 而class对象可以描述类的基础信息:属性、方法、接口、注解,并能生成类的实例对象(class对象也可叫做元对象,即描述类信息的对象)。
- Class类的存在是实现反射的关键。
举例说明:
package classdemo; public class Person { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
测试类:
package classdemo; public class ClassDemo { public static void main(String[] args) { Class clazz = Person.class.getClass(); } }
通过clazz这个元对象,我们可以获取Person类的各种描述信息,如下:
//获取属性信息: getField(String); getFields(); getDeclaredFields(); getDeclaredField(String name); //获取方法信息: getMethods(); getMethod(String name, Class<?>... parameterTypes); getDeclaredMethods(); getDeclaredMethod(String name, Class<?>... parameterTypes); //获取实现的接口信息: getInterfaces(); //生成实例对象: newInstance(); //可代替new关键字来生成实例对象