第一种 1.使用new创建
这是最常用的一种。如:
Fish shark = new Fish();
第二种 2.使用object.clone()
如果要调用clone方法,那么该object需要实现(implement)Cloneable接口(interface),并重写(@override)clone()方法
示例
public class Fish implements Cloneable {
String name;
float price;
public Fish(String name, float price) {
this.name = name;
this.price = price;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return (Fish) super.clone();
}
}
测试
try {
Fish shark = (Fish)shark.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
第三种 使用Class.newInstance()
可以直接使用Class.forName("xxx.xx").newInstance()方法或者XXX.class.newInstance()完成。
第四种 使用Contructor.newInstance()
可以指定构造器来创建,如选择第一个构造器创建;也可以指定构造函数参数类型来创建。