java中创建对象有哪几种方式

1.用new 创建对象,这是最常用的创建对象的方法。

User user1 = new User(2,"青秧");

2.运用反射,调用Java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。

Class c = Class.forName("com.itheima.User");//获取字节码文件对象
User user=(User)c.newInstance();

3.调用对象的clone()方法

clone()表示克隆,使用这个实例化一个对象的前提是:前面已经有一个实例化过的对象
User user1 = new User(2,"青秧");
User user2 = (User) user1.clone();

4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。
public class Demo01_ObjectOutputStream {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
//      writeObj();
        readObj();
    }
    
    public static void writeObj() throws  IOException{
    //序列化
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("d:\\work\\abc\\person.txt"));
        
        Person p = new Person("柳岩",38);
        //写对象
        oos.writeObject(p);
        
        oos.close();
    }
    
    public static void readObj() throws IOException, ClassNotFoundException{
    //反序列化
        ObjectInputStream ois= new ObjectInputStream(new FileInputStream("d:\\work\\abc\\person.txt"));
        //读对象
        Object obj = ois.readObject();//相当于new Person();
        System.out.println(obj);
        
        ois.close();
    }
}

1和2都会明确的显式的调用构造函数 ;
3是在内存上对已有对象的影印,所以不会调用构造函数 ;
4是从文件中还原类的对象,也不会调用构造函数。

你可能感兴趣的:(java中创建对象有哪几种方式)