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