- 通过 new 关键字
a. 调用类的有参或无参构造方法
- 通过 Class 类的 newInstance() 方法
a. 调用类的无参构造方法
b. 实际内部调用Constructor的newInstance()方法
c. 通过反射来实现
- 通过 Constructor 类的 newInstance() 方法
a. 指定某个构造器来创建对象
b. 通过反射来实现
- 通过 Clone() 方法
a. 类必须实现Cloneable接口
- 通过反序列化
public class Person implements Cloneable {
private int age;
private String name;
public Person() {
}
public Person(String name, int page) {
this.name = name;
this.age = page;
}
public static void main(String[] args) throws Exception {
// 方法1:通过new关键字
Person p1 = new Person();
// 方法2:通过Class类的newInstance()方法
Person p2 = (Person) Class.forName("Person").newInstance();
// 方法3:通过Constructor类的newInstance()方法
Person p3 = (Person) Person.class.getConstructors()[0].newInstance();
// 方法4:通过Clone()方法
Person p4 = (Person) p3.clone();
// 方法5:反序列化 TODO
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
System.out.println(p4);
}
}