|
|
1
19
非静态方法是实例方法。这只能在现有实例中访问,当您在构造函数中时实例还不存在(它仍在构造中)。 为什么会这样?因为实例方法可以访问实例(非静态)字段,这些字段在不同的实例中可能有不同的值,所以在现有的已完成实例之外的其他对象上调用此类方法是没有意义的。 |
|
2
12
看到了吗 Java Language Specification 8.8.7.1 . 这说明
这是因为在创建实例之前不能调用实例方法。顺便说一下,以后可以在构造函数中调用实例方法(尽管不是您的解决方案)。 |
|
|
3
1
我认为这是因为还没有设置最终实例变量(所以您还没有实例),并且实例方法可以访问它。而所有静态初始化都是在构造函数调用之前完成的。 格里茨, 伽德 |
|
|
4
1
|
|
|
5
1
此时TestNotWorking未初始化。问题是:第一个构造函数(TestNotWorking(aParam))可能会调用super()(在内部总是这样),这意味着您将在调用超类的构造函数之前调用一个方法。那是违法的。 |
|
|
6
0
在第二个示例中,您需要创建一个类的对象
比如:
|
|
|
Tom Buck · c#程序在整数列表上冻结 8 年前 |
|
|
Ran Lavi · 在c中初始化结构的指针++ 8 年前 |
|
|
Js_zero · 在c++中实例化对象有几种方法,它们之间有什么区别 8 年前 |
|
|
jfernal · 节点。js在加载其他函数之前等待初始化变量 8 年前 |
|
|
Victor · 在javafx中运行时更改标签文本 8 年前 |
|
|
blubb · 在Kotlin中是否有更惯用的方法来初始化此映射? 8 年前 |
|
|
Bing Bang · 初始化包含字节数组的结构数组 8 年前 |