创建对象的方法(共4种)
方法1:静态编码&编译
//第一种 直接new 调用构造函数
A obj1 = new A(); obj1.hello();
方法2:克隆
//第二种 clone //obj3是obj2的克隆对象 没有调用构造函数 B obj2 = new B(); obj2.hello(); B obj3 = (B) obj2.clone(); obj3.hello();
方法3: 序列化(serialization)和反序列化(deserialization)
//第三种 序列化 没有调用构造函数 //序列化会引发安全漏洞,未来将被移除JDK,不推荐. C obj4 = new C(); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("data.obj")); out.writeObject(obj4); out.close(); ObjectInputStream in = new ObjectInputStream(new FileInputSteam("data.obj")); C obj5 = (C) in.readObject(); in.close();
方法4和5:反射
//第四种 newInstanse 调用构造函数 Object obj6 = Class.forName("A").newInstance(); Method m = Class.forName("A").getMethod("hello"); m.invoke(obj6); //第五种 newInstance 调用构造函数 Constructor<A> constructor = A.class.getConstructor(); A obj8 = constructor.newInstance(); obj8.hello();

浙公网安备 33010602011771号