在Java中类实例化方式主要有四种:
1、使用new操作符。
2、调用class对象的newInstance()方法。
3、调用clone()方法,从而实现对实例的拷贝。
4、通过ObjecInputStream的readObject()方法,反序列化类。
下面是一个具体的例子:
public class CInstanceDemo {
private String demo = "类的实例化...";
public void demo() {
System.out.println(demo);
}
public CInstanceDemo(String demo) {
System.out.println("调用的是有参数的构造方法");
this.demo += demo;
}
public CInstanceDemo() {
System.out.println("调用的是无参数的构造方法");
}
public Object clone() {
return this;
}
public static void main(String[] args) throws ClassNotFoundException,
InstantiationException, IllegalAccessException {
// 方式一
CInstanceDemo t1 = new CInstanceDemo("我是参数");
t1.demo();
System.out.println("t1:" + t1);
System.out.println("----------------------------------------");
// 方式二
CInstanceDemo t2 = (CInstanceDemo) Class.forName("CInstanceDemo")
.newInstance();
t2.demo();
System.out.println("t2:" + t2);
System.out.println("----------------------------------------");
// 方式三
CInstanceDemo t3 = (CInstanceDemo) t1.clone();
t3.demo();
System.out.println("t3:" + t3);
}
}
输出结果:
调用的是有参数的构造方法
类的实例化...我是参数
t1:CInstanceDemo@5a1cfb56
----------------------------------------
调用的是无参数的构造方法
类的实例化...
t2:CInstanceDemo@24b8f952
----------------------------------------
类的实例化...我是参数
t3:CInstanceDemo@5a1cfb56