我前几天问一个同学,是不是在调用构造函数后,对象才被实例化?他不假思索的回答说是。
请看下面代码:
Java代码
Date date=new Date();
em.out.println(date.getTime());
新手在刚接触构造函数这个概念的时候。他们常常得出这样的结论:对象实例是在调用构造函数后创建的。因为调用构造函数后,调用引用(date)的实例方法便不会报NullPointerException的错误了。
二、经验者的观点
然而,稍稍有经验的Java程序员便会发现上面的解释并不正确。这点从构造函数中我们可以调用this关键字可以看出。
请看下面代码:
Java代码
public class Test
{
public Test()
{
this.DoSomething();
}
private void DoSomething()
{
System.out.println("do init");
}
}
这段代码中我们在构造函数中已经可以操作对象实例。这也就证明了构造函数其实只是用于初始化,早在进入构造函数之前。对象实例便已经被创建了。
编辑特别推荐:
40个轻量级JavaScript库介绍
Java网络编程:实现HTTP模拟器
使用NetBeans开发Firefox插件