我刚刚开始阅读Java。我感到困惑的一件事是,应在类的所有构造函数中初始化空白的最终变量。如果我有一个包含3个构造函数的类,并且在一个构造函数中初始化了一个空白的最终变量,为什么还要在其他两个构造函数中初始化相同的空白的最终变量呢?
必须在创建类的实例时(即在构造函数执行完成之后)初始化最终变量。
如果使用不初始化空白的final变量的构造函数之一创建该类的实例,则一旦构造函数的执行完成,就不会初始化final变量。
因此,所有构造函数都必须初始化空白的final变量。
假设所有构造函数都没有使用调用其他构造函数this()
。
每个局部变量(第14.4节)和每个空白的空白字段(第4.12.4节,第8.3.1.2节)在对其值进行任何访问时都必须具有明确分配的值。
如果使用未初始化空白的final字段的构造函数创建类的实例,则可以在分配该字段之前访问该字段。因此,编译器不允许这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句