java 对象是在什么时候创建的?
我们都知道,创建java类对象的方式: new + 类的构造方法(可能是有参构造或者无参构造)!
在大多数初学者眼中,执行构造方法就是创建实例,其实不然。这一点可以从this关键字来看出:
public class User{
public User(){
this.test();//标记
}
public void test(){
System.out.print(“正在执行构造方法…”);
}
}
从以上代码中我们可以看出:当构造方法执行到注释标记处,我们使用了this关键字,而this的作用就是是指代构造方法执行时的当前类实例,也就是说在构造方法执行之前,实例已经被创建了!所以类实例或者说类对象并不是构造方法创建的,而是new 关键字来创建的。而构造方法的 作用其实是初始化实例,这一点我们从带参的构造方法中可以看出:
public class User{
private String name;
private int age;
public User(String name ,int age){
this.name = name;
this.age = age;
this.test();//标记
}
public void test(){
System.out.print(“正在执行构造方法…”);
}
}
所以,类对象是在执行构造方法前已经被创建,而构造方法的作用就是初始化对象!