关于java构造器的疑问:构造器也是类的静态方法?

最近看《Thinking in Java 4》时,看到里面写道:“当程序创建第一个对类的静态成员
的引用时,就会加载这个类。这个 证明**构造器也是类的静态方法**,即使在构造器之前没有
使用static关键字”。
这里大家怎么理解?小弟琢磨了好久还是看不懂,寻求各位好汉的帮助,欢迎大家发表自己的见解,谢谢!

1个回答

说构造方法也是静态方法,从jvm的角度获取可以这么类比,但是在编程中这种理解不好。
首先构造方法分为静态构造方法和实例构造方法,如果你把实例构造方法当成静态方法,那么静态构造方法怎么类比呢?
另一个问题,构造函数是可以访问成员变量的,而且它往往就是用来初始化成员变量。但是一般静态方法就不可以。所以怎么能类比呢?

pdw22336699
释怀然已 那么Java中的实例构造器是不是“静态方法”呢?从Java语言规范中给出的“静态方法”的定义来看,答案是“否”——首先从Java语言规范对“方法”的定义来说,构造器根本不是“方法”;其次,实例构造器有一个隐式参数,“this”,在实例构造器中可以访问“this”,可以通过“this”访问到正在初始化的对象实例的所有实例成员。 实例构造器无法被隐藏或覆写,不参与多态,因而可以做静态绑定。从这个意义上可以认为实例构造器是“静态”的,但这种用法与Java语言定义的“静态方法”是两码事
3 个月之前 回复
qq_28580453
qq_28580453 恩,谢谢您的帮助!
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问