java創(chuàng)建對(duì)象有五種方式,分別是:
1、使用new關(guān)鍵字
這是最常見也是最簡單的創(chuàng)建對(duì)象的方式。通過這種方式,我們可以調(diào)用任意的構(gòu)造函數(shù)(無參的和帶參數(shù)的)。
Employee emp1 = new Employee();
2、使用Class類的newInstance方法
這個(gè)newInstance方法調(diào)用無參的構(gòu)造函數(shù)創(chuàng)建對(duì)象。
我們可以通過下面方式調(diào)用newInstance方法創(chuàng)建對(duì)象:
Employee emp2 = Employee.class.newInstance();
(視頻教程推薦:java視頻)
3、使用Constructor類的newInstance方法
和Class類的newInstance方法很像, java.lang.reflect.Constructor類里也有一個(gè)newInstance方法可以創(chuàng)建對(duì)象。我們可以通過這個(gè)newInstance方法調(diào)用有參數(shù)的和私有的構(gòu)造函數(shù)。
Constructor<Employee> constructor = Employee.class.getConstructor(); Employee emp3 = constructor.newInstance();
4、使用clone方法
無論何時(shí)我們調(diào)用一個(gè)對(duì)象的clone方法,jvm就會(huì)創(chuàng)建一個(gè)新的對(duì)象,將前面對(duì)象的內(nèi)容全部拷貝進(jìn)去。用clone方法創(chuàng)建對(duì)象并不會(huì)調(diào)用任何構(gòu)造函數(shù)。
要使用clone方法,我們需要先實(shí)現(xiàn)Cloneable接口并實(shí)現(xiàn)其定義的clone方法。
Employee emp4 = (Employee) emp3.clone();
5、使用反序列化
當(dāng)我們序列化和反序列化一個(gè)對(duì)象,jvm會(huì)給我們創(chuàng)建一個(gè)單獨(dú)的對(duì)象。在反序列化時(shí),jvm創(chuàng)建對(duì)象并不會(huì)調(diào)用任何構(gòu)造函數(shù)。為了反序列化一個(gè)對(duì)象,我們需要讓我們的類實(shí)現(xiàn)Serializable接口。
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj")); Employee emp5 = (Employee) in.readObject();
推薦教程:java開發(fā)入門