以下哪些Java约定具有更高的优先级?

以下哪些Java约定具有更高的优先级?,java,Java,在类的顶部一起声明final变量 或 通过在各自的方法中声明来限制这些变量的范围。这不是约定问题,而是对象中的逻辑状态问题 如果一个变量在逻辑上是一个对象状态的一部分,那么它应该声明为一个字段——是的,通常放在文件的顶部 如果它只是方法的局部状态的一部分,那么将其声明为字段将是疯狂的。这与将字段放置在何处的约定并不冲突,只是选择字段还是局部变量的问题 在一个方法中,我看到许多Java新手在方法的顶部声明他们的所有变量,而在我看来,一个更有用的习惯是尽可能晚地声明变量,并且范围尽可能小。这不是一个

在类的顶部一起声明
final
变量


通过在各自的方法中声明来限制这些变量的范围。

这不是约定问题,而是对象中的逻辑状态问题

如果一个变量在逻辑上是一个对象状态的一部分,那么它应该声明为一个字段——是的,通常放在文件的顶部

如果它只是方法的局部状态的一部分,那么将其声明为字段将是疯狂的。这与将字段放置在何处的约定并不冲突,只是选择字段还是局部变量的问题


在一个方法中,我看到许多Java新手在方法的顶部声明他们的所有变量,而在我看来,一个更有用的习惯是尽可能晚地声明变量,并且范围尽可能小。

这不是一个惯例问题,而是对象中的逻辑状态问题

如果一个变量在逻辑上是一个对象状态的一部分,那么它应该声明为一个字段——是的,通常放在文件的顶部

如果它只是方法的局部状态的一部分,那么将其声明为字段将是疯狂的。这与将字段放置在何处的约定并不冲突,只是选择字段还是局部变量的问题


在一个方法中,我看到很多新手Java程序员在方法顶部声明他们的所有变量,而在我看来,一个更有用的习惯是尽可能晚地声明一个变量,而且范围尽可能小。

这两个选项没有相同的语义-因此它们不具有可比性…这个问题似乎是主观的,只是观点,编译器不关心-那么优先级是什么?这两个选项没有相同的语义-所以它们不可比较…这个问题似乎是主观的,只是观点,编译器不关心-那么优先级是什么?我属于你提到的新手类别,我经常将最终变量声明为字段。不确定我是从哪里养成这个习惯的,但我开始想知道为什么/什么时候我可以缩小他们的范围。你的回答很有道理。谢谢。@es0329:final字段本身没有问题(事实上,通常我的字段也是final的)——只要它们是对象状态的逻辑部分。我属于您提到的新手类别,我经常将final变量声明为字段。不确定我是从哪里养成这个习惯的,但我开始想知道为什么/什么时候我可以缩小他们的范围。你的回答很有道理。谢谢。@es0329:final字段本身没有问题(事实上,通常我的字段也是final的)——只要它们在逻辑上是对象状态的一部分。