- package itHeima.RUXUE1;
- public class Test13 {
- public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException{
- //把用new创建对象的方式拆开写
- ClassLoader c = ObjectTest.class.getClassLoader(); //获取类加载器
- Class<?> clazz = c.loadClass("itHeima.RUXUE1.ObjectTest"); //读取字节码文件,并返回字节码对象
- ObjectTest obj = (ObjectTest) clazz.newInstance(); //通过反射调用无参构造器创建对象
-
- }
- }
- class ObjectTest{
- int i; //只要是成员字段,都有默认初始值,无论是否为静态
- static int b;
- static{
- System.out.println("静态代码块,类初始化 " +b); //1、对静态字段进行默认初始化
- }
- {
- System.out.println("构造代码块,对象初始化"+i+" "+b); //2、对成员字段进行默认初始化
- }
- ObjectTest(){
- System.out.println("无参构造器");
- }
- ObjectTest(int i,int b){ //3、用构造器对成员字段进行显式初始化
- this.i = i;
- this.b = b;
- System.out.println("有参构造器 "+this.i+" "+this.b);
- }
- }
复制代码
上面这个例子是我的一个总结,希望对楼主有帮助。 |