【问题标题】:Declaring Variables in java within methods [closed]在方法中在java中声明变量[关闭]
【发布时间】:2014-02-23 05:53:06
【问题描述】:

我正在尝试理解 Java 中的变量声明。

实际上,我试图理解为什么您不会在类的顶部声明变量,启动它们,然后根据需要使用。

在 Headstart Java 书中,它指出局部变量在方法中声明并在代码块中启动。我理解这方面。

我的问题是,如果你知道变量,为什么不在方法开始时声明它,而不是在代码中间等待和声明/初始化?

这不会使代码更难阅读吗?

例如:

Class Foo {

 while.... blah blah

   int bar = 3 + dog.getsize();

}

【问题讨论】:

标签: java variables declaration


【解决方案1】:

如果一个方法有很多变量,你可能会得到一个“头重脚轻”的方法,在任何实际代码之前都有许多声明。此外,如果您的方法很长,您可能需要搜索变量的声明以找出其类型。

此外,变量可以在声明时进行初始化,这使得代码更短。通过将声明放在靠近使用它的位置,它既与方法的部分相关,又易于找到类型。这样的代码更容易阅读和编写。

话虽如此,我更喜欢将我的大部分变量声明(和初始化)放在与其相关的块或方法的顶部。

如果方法需要在方法调用之间持续存在,我只会将方法放在类级别。任何只与方法相关的东西都应该在方法中声明。与代码块相关的东西在代码块的顶部声明。

【讨论】:

    【解决方案2】:

    这真的是风格问题。 但是,通常最好的做法是在接近首次使用时声明局部变量。它使代码阅读更容易理解。想象一个有数百行的大型方法(顺便说一下不好的做法:))。如果在顶部附近声明变量,然后在数百行之后引用,则可能会使代码难以阅读。

    【讨论】:

    • 我明白了。我的思考过程是预先考虑它,但正如你所说,当我开始实现它的任何代码时,我将不得不回溯,找到那个变量然后使用它。现在有道理了。谢谢!
    【解决方案3】:

    假设您的方法有 50 行长,并且您只需要在第 48 行使用这个变量。当您阅读前 47 行时,您可能已经难以记住该变量的拼写方式以及它的数据类型是。这就是为什么在需要局部变量之前不久声明它们是一个好主意的原因。如果变量将在 try 块中声明并且您需要在 try 块完成后检查值,则存在异常,但在这种情况下,您应在 try 之前声明。

    【讨论】:

      【解决方案4】:

      来自JavaDoc

      在java中有四种变量:

      1. 实例变量(非静态字段)
      2. 类变量(静态字段)
      3. 局部变量
      4. 参数

      如果你在一个类中声明一个变量,java 会为你初始化它的值。在声明局部变量时,您必须初始化其值以避免 Variable might not have been initialized error

      虽然它总是取决于变量的范围和你的算法。在声明时,您应该始终关心代码的 readability

      更多参考Initialization in java

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多