在方法中声明java中的变量

时间:2014-01-30 18:35:24

标签: java variables declaration

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

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

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

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

这会不会让代码难以阅读?

例如:

Class Foo {

 while.... blah blah

   int bar = 3 + dog.getsize();

}

4 个答案:

答案 0 :(得分:2)

这真的是一种风格问题。 但是,通常最好在第一次使用时声明局部变量。它使代码阅读更容易理解。想象一下拥有数百行的大型方法(顺便说一下糟糕的做法:))。如果在顶部附近声明了变量,那么稍后会引用数百行,这会使代码读取变得困难。

答案 1 :(得分:1)

如果一个方法有很多变量,你可能会得到一个"最重的"在任何实际代码之前有许多声明的方法。此外,如果您的方法很长,您可能必须搜索变量的声明以找出其类型。

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

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

如果需要在方法调用之间保持,我只在类级别放置方法。应该在方法中声明任何仅与方法相关的内容。与代码块相关的事物在块的顶部声明。

答案 2 :(得分:0)

假设您的方法长度为50行,并且您只需要在第48行使用此变量。当您读取前47行时,您可能无法记住该变量的拼写方式及其数据类型是。这就是为什么在需要之前不久声明局部变量的好主意。如果变量将在try块中声明,并且您需要在try块完成后检查该值,则会出现异常,但在这种情况下,您将在try之前声明。

答案 3 :(得分:0)

来自JavaDoc

在java中有四种变量:

  1. 实例变量(非静态字段)
  2. 类变量(静态字段)
  3. 本地变量
  4. 参数
  5. 如果要在类中声明变量,则java会为您初始化其值。在声明局部变量时,您必须初始化其值以避免 Variable might not have been initialized error

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

    关于Initialization in java的进一步参考。