我正在尝试理解Java中的变量声明。
实际上,我试图理解为什么你不会在类的顶部声明变量,启动它们,然后根据需要使用它们。
在Headstart Java一书中,它指出局部变量是在一个方法中声明的,并在代码块中启动。我理解这方面。
我的问题是,如果您知道变量,为什么不在方法的开头声明它,而不是在代码中间等待和声明/初始化?
这会不会让代码难以阅读?
例如:
Class Foo {
while.... blah blah
int bar = 3 + dog.getsize();
}
答案 0 :(得分:2)
这真的是一种风格问题。 但是,通常最好在第一次使用时声明局部变量。它使代码阅读更容易理解。想象一下拥有数百行的大型方法(顺便说一下糟糕的做法:))。如果在顶部附近声明了变量,那么稍后会引用数百行,这会使代码读取变得困难。
答案 1 :(得分:1)
如果一个方法有很多变量,你可能会得到一个"最重的"在任何实际代码之前有许多声明的方法。此外,如果您的方法很长,您可能必须搜索变量的声明以找出其类型。
此外,变量可以在声明时初始化,这样可以缩短代码。通过将声明放在靠近它的位置,它既与方法的部分相关,又容易找到类型。它更容易阅读,并编写这样的代码。
话虽如此,我更倾向于将大部分变量声明(和初始化)放在与它们相关的块或方法的顶部。
如果需要在方法调用之间保持,我只在类级别放置方法。应该在方法中声明任何仅与方法相关的内容。与代码块相关的事物在块的顶部声明。
答案 2 :(得分:0)
假设您的方法长度为50行,并且您只需要在第48行使用此变量。当您读取前47行时,您可能无法记住该变量的拼写方式及其数据类型是。这就是为什么在需要之前不久声明局部变量的好主意。如果变量将在try块中声明,并且您需要在try块完成后检查该值,则会出现异常,但在这种情况下,您将在try之前声明。
答案 3 :(得分:0)
来自JavaDoc
在java中有四种变量:
如果要在类中声明变量,则java会为您初始化其值。在声明局部变量时,您必须初始化其值以避免 Variable might not have been initialized error
虽然它总是取决于变量的范围和你的算法。在声明时,您应始终关注代码的 readability 。
关于Initialization in java的进一步参考。