很多人说java中的构造函数是非静态的..! 要初始化对象,我们需要Constructor。因此,我们可以使用没有对象的构造函数,然后构造函数必须是静态的。
答案 0 :(得分:4)
构造函数有一个实例(this
可用)。因此,根据定义,它不是静态的。
JRE在创建实例后运行构造函数。
答案 1 :(得分:1)
应使用类名调用静态成员,而无需创建类的实例,如
ClassName.memberName/(..)
请参阅好的解释:Java static constructor – Is it really Possible to have them in Java?
答案 2 :(得分:0)
嗯,这不是关于“很多人的想法”,而是关于定义。正如Java Language Specification所说:
始终针对对象调用实例方法,该对象成为在执行方法体时关键字
this
和super
引用的当前对象。
和
未声明为
static
的方法称为实例方法,有时也称为非静态方法。
如果您在构造函数的上下文中定义了this
和super
,则必须将构造函数视为非静态方法,但我了解其背后的理念你的帖子new
带有一些静态功能:
new
new
不是虚拟的答案 3 :(得分:0)
Java中的构造函数不是用于构造对象,而是用于初始化对象。构造函数是在实例化对象构建后由JVM运行的第一个方法。
答案 4 :(得分:0)
在Java构造函数中不能是静态的或同步的。一个对象将仅由一个线程构建(创建+初始化),构造函数在已创建的实例上运行 - 意味着在非静态上下文中。