Class类
Class类用来描述某个类的属性、方法、构造函数、实现的接口。Class类的对象由系统产生,一个类在JVM中只有一个Class对象,且这个对象不可变。
为什么需要这个类?
可以通过某个类的对象获得该类的信息
三种获取Class对象的方式
Class clazz = null;
Class = Person.class;//类名.class
Object obj = new Person();
clazz = obj.getClass();//对象名.getClass()
String className = " com.atguigu.java.fanshe.Person";
clazz = Class.forName(className);//Class.forName(类全名)
Class实例实际调用的是类的无参数构造器。所以如果要用反射,在定义类时,除了定义有参数构造器用来对属性进行初始化,还要定义一个无参数构造器
ClassLoader
类装载器用来把类装入JVM
反射
reflection是动态语言的关键,反射机制允许程序借助反射API获取任何类的内部信息,直接操作任意对象的内部属性和方法。
反射机制的功能:
- 运行时构造任意一个类的对象
- 运行时获取任意一个类的成员变量和方法
- 运行时调用任意一个对象的方法和属性