- 類相當於實例對象的模板,而實例對象相當於用模板對象制作的一個個產品。
- 而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關鍵字來生成實例對象