当我有静态方法时,什么是声明范围变量的好地方?内部方法体或外部?
public static void myMethod()
{
int myVariables;
//body
}
private static int myVariables;
public static void myMethod()
{
//body
}
答案 0 :(得分:7)
您应该在尽可能小的范围内声明变量。因此,如果局部变量有效,请坚持使用局部变量(选项1)。
只有当你不能对局部变量做你想做的事情时,才考虑一个字段或属性。
答案 1 :(得分:1)
如果仅在方法作用域中使用该变量,则在方法内部声明它们,因为在返回方法后可以释放由它分配的内存。
如果需要在多个方法调用中存储一些变量,请在主体外部定义它们,以便在方法调用后不会释放它们。
答案 2 :(得分:1)
它依赖你的任务。你应该在尽可能小的范围内声明变量。
如果您想要全局访问,则应定义为下面的
private static int myVariables;
public static void myMethod()
{
//body
}
您只想在您应该定义为方法
的方法内访问public static void myMethod()
{
int myVariables;
//body
}
答案 3 :(得分:1)
我说:
<强> 1。作为静态方法的参数
//这是最好的,因为您可以通过传递模拟值轻松测试您的方法,并且一旦方法结束,它就会被GC删除
<强> 2。本地变量
//这有点&#39; ok&#39;但是当你尝试对你的方法进行单元测试时,问题就出现了。检查本地方法变量的分配是否非常困难(它是否具有正确的值)。一旦方法结束,GC就会将其删除。
第3。类中的静态字段
//虽然通常应该避免这种情况,但如果您要在班级的不同方法中甚至在班级之外重复使用它,那么这是一个好主意。当您对班级的引用丢失时,GC会将其删除。