|
|
1
19
非静态方法是实例方法。这只能在现有实例中访问,当您在构造函数中时实例还不存在(它仍在构造中)。 为什么会这样?因为实例方法可以访问实例(非静态)字段,这些字段在不同的实例中可能有不同的值,所以在现有的已完成实例之外的其他对象上调用此类方法是没有意义的。 |
|
2
12
看到了吗 Java Language Specification 8.8.7.1 . 这说明
这是因为在创建实例之前不能调用实例方法。顺便说一下,以后可以在构造函数中调用实例方法(尽管不是您的解决方案)。 |
|
|
3
1
我认为这是因为还没有设置最终实例变量(所以您还没有实例),并且实例方法可以访问它。而所有静态初始化都是在构造函数调用之前完成的。 格里茨, 伽德 |
|
|
4
1
|
|
|
5
1
此时TestNotWorking未初始化。问题是:第一个构造函数(TestNotWorking(aParam))可能会调用super()(在内部总是这样),这意味着您将在调用超类的构造函数之前调用一个方法。那是违法的。 |
|
|
6
0
在第二个示例中,您需要创建一个类的对象
比如:
|
|
KiraHoneybee · 具有构造函数参数的模板化类 4 年前 |
|
|
nick2225 · 隐式调用复制构造函数? 4 年前 |
|
|
nohaga · 为什么在本例中p3需要默认构造函数? 4 年前 |
|
|
Aadil Hoda · 为什么类类型的成员需要初始化? 4 年前 |
|
|
EloiGG · 具有任意类型的变量的可数的C++函数 4 年前 |