(19条消息) 静态数据的初始化_Chen+7的博客-CSDN博客
这篇文章中我提到过程序会先创建static的两个静态对象,再去调用构造器,如果构造器也是static方法,那程序应该先输出Bowl(1),Table(),Bowl(2),代码可以看上面这篇文章,从这里就可以看出其实构造器不是静态方法。
但是在java编程思想中提到了“即使没有显示地使用static关键字,构造器实际上也是静态方法“。所以我又对此产生了疑问。又从不同的角度去找这个问题的答案。
从java的语言规范中,类中的静态方法和属性都可以被类名调用,但是想想看构造器真的可以被类名调用么?其次,在java实例构造器中有一个隐式的参数“this”,可以通过“this”访问到正在初始化的对象实例的所有实例成员。
实例构造器无法被隐藏或覆写,不参与多态,因而可以做静态绑定。从这个意义上可以认为实例构造器是“静态”的,但这种用法与Java语言定义的“静态方法”是两码事。