1、Class类:
所有类的对象实际上是Class类的实例;
a、public static Class<?> forName(String className) throws ClassNotFoundException
传入完整的“包.类”,名称实例化Class对象;
b、public Constructor[] getConstructor() throws SecurityException
得到一个类中的全部构造方法;
c、public Field[] getDeclaredFields() throws SecurityException
得到本类中单独定义的全部属性;
d、public Field[] getFields() throws SecurityException
得到本类继承而来的全部属性;
e、public Method[] getMethods() throws SecurityException
得到本类中的全部方法;
f、public Method getMethods(String name,Class...ParameterTypes) throws NoSuchMethodException,SecurityException
返回一个Method对象,并设置一个方法中的所有参数类型;
g、public Class[] getInterfaces
得到一个类中所实现的全部接口;
h、public String getName
得到一个类完整的“包.类”名称;
i、public Package getPackage
得到一个类的包;
j、public Class getSuperclass
得到一个类的父类;
k、public Object newInstance() throws InstantiationException,IllegalAccessException
根据Class定义的类实例化对象;
l、public Class<?>getComponentType()
返回表示数组的Class;
m、public boolean isArray()
判断此类是否是一个数组;
实例化对象可以通过类.class
、对象.getClass()
、forName()
三种方法,效果是一样的,但常用forName()
这个方法;
使用Class类实例化对象时一定要在类中写无参数构造函数;
反射机制可以实现动态代理、工厂模式;
!!!反射机制重点掌握