1. 一个类中有多个组成部分,例如:成员变量,方法,构造方法等。 反射就是加载类,并解剖出类的各个组成部分 1.1 加载类 获得类的字节码 Class.forName("类的完整名称"); 返回一个Class对象 Class class = Class.forName("com.qq.Persion"); //抛一个异常
1.2 加载类 获得类的字节码 Class class = new Persion().getClass(); 1.3 加载类 获得类的字节码 Class class =Persion.class;
2. 反射类的构造函数,创建类对象
2.1 调用构造函数创建对象 Class class = Class.forName("com.qq.Persion");
Constructor c=class.getConstructor("参数控制想解剖的哪个构造函数");//得到类里面的构造函数
Persion p=(Persion) c.newInstance("参数");//有创建对象的方法
2.2 调用构造函数创建对象 Class class = Class.forName("com.qq.Persion");
Constructor c=class.getConstructor("String.class");//得到类里面的构造函数 有参 String类型
Persion p=(Persion) c.newInstance("小明");//有创建对象的方法
2.3调用构造函数创建对象 Class class = Class.forName("com.qq.Persion");
Constructor c=class.getConstructor("String.class,int.class");//得到类里面的构造函数 有参 String类型
Persion p=(Persion) c.newInstance("小明",12);//有创建对象的方法
2.4 私有的构造函数 参数为list集合 调用构造函数创建对象 Class class = Class.forName("com.qq.Persion");
Constructor c=class.getConstructor("List.class");//得到类里面的构造函数 有参 String类型
c.setAccessile(true);//私有的东西不能被外界访问,但是在反射里面可以,暴力打开
Persion p=(Persion) c.newInstance(new ArrayList());//有创建对象的方法 2.5创建对象的另一种形式
Class class = Class.forName("com.qq.Persion");
Persion p=(Persion) c.newInstance();// 无参 直接创建类对象
3..构造函数的作用:创建对象,完成对象初始化 字段的作用:封装数据 方法的作用:执行某个功能
