Java 在代码的中间级别声明局部变量是好的吗?

Java 在代码的中间级别声明局部变量是好的吗?,java,coding-style,Java,Coding Style,在阅读《清洁代码》一书时,我遇到了以下说明: “局部变量 应该在第一次使用的上方声明,并且应该有一个小的垂直范围 不希望局部变量声明为与它们的用法相距数百行。” 请参见以下示例: public class A { public static void main(String[] args) { String name = "Robert"; String country = "iiiii"; int age = 21;

在阅读《清洁代码》一书时,我遇到了以下说明:

“局部变量 应该在第一次使用的上方声明,并且应该有一个小的垂直范围 不希望局部变量声明为与它们的用法相距数百行。”

请参见以下示例:

 public class A {

    public static void main(String[] args)  {

        String name = "Robert";
        String country = "iiiii";
        int age = 21;
        String hobby = "Soccer";
        System.out.println("my name is "+name+"I'm "+age+" and I'm from "+country);
        /*

             * 
             * a lot of code here
             * 
             * */
            System.out.println("my hobby is: " + hobby);

        }
    }
在这里,变量hobby是其用法的一块绊脚石,因此我想确定它是否干净,可以像下面的代码那样编写,因为我经常看到在函数的顶层声明局部变量:

/*the previous code here*/
String hobby = "Soccer";
System.out.println("my hobby is: " + hobby);

实际上,建议在尽可能小的范围内声明变量。所以在你使用它的地方声明它。
这只会让你的代码有点混乱

当我们谈论局部变量时,这本书所说的作为一般规则是正确的

关键是,如果将声明和变量的使用紧密地联系在一起,代码的可读性就会更好。如果它们相距很远,您可能会发现自己向后扫描了许多行以找到声明。这打破了你的注意力

(现代IDE有聪明的方法向您显示变量的类型,或转到其声明。但是,如果您可以在同一“页面”上看到声明和用法,则更容易。)


话虽如此,这在某种程度上是个人偏好的问题。有些人喜欢“在顶部声明变量”,因为一些老式的编程语言不允许在声明和其他语句之间穿插。

我发现它更具可读性。如果你的方法很长,最好在你需要的时候声明变量,这样读你代码的人就不会疯狂地搜索变量。但这只是我的意见;)相信书中的指示:)@BackSlash是的,你是对的,很好的意见。谢谢,你的引用回答了你的问题。那么你不知道的是什么;我不明白,真的;它既有用又杂乱无章