在引用类中的静态字段时,我应该使用类名吗



如果我有一个带有静态字段的类,例如:

public class Foo {
public static int bar;
}

我想在它声明的类中引用这个字段。我知道两者:

public class Foo {
public static int bar;
public static int getBar() {
return bar;
}
}

和:

public class Foo {
public static int bar;
public static int getBar() {
return Foo.bar;
}
}

工作。在是否包括这样的类名之间有什么偏好或约定吗?感谢您的帮助。

实际上,这完全是基于观点的。你应该做你喜欢的任何方法。两者都是平等的。但我想补充一点,如果您使用getter/setter,那么请声明静态变量private:

public class Foo {
private static int bar;
public static int getBar() {
return bar;
}
public static int setBar(int _bar) {
bar = _bar;
}
}

由于getter和setter方法都是静态的,因此可以确保它们都只能使用Foo类的静态变量。这也解决了可读性问题。

我同意评论中提到的任何内容。除此之外,我还考虑到代码的可读性,然后再做决定。以下代码片段给出了相同的想法:

public class Engine {
private static boolean isOn = false;
public static void doWork1() {
if (isOn) { // check if engine is on
// do some work
}
}
public static void doWork2() {
if (Engine.isOn) {
// do some work
}
}
...
}

您可以看到,doWork2()方法通过使用类名提高了代码的可读性,甚至没有在代码中添加任何注释。

最新更新