我们有了Java类的下一个来源和一些保护其变量的可能性:
public class Foo {
public static String ALPHA = "alpha";
protected String beta = "beta";
private final String delta;
public Foo(String d) {
delta = ALPHA + d;
}
public String Foo() {
return beta
}
}
哪些变化使Foo更安全?为什么?我们在这里看到了一个与可见性修饰符和使用常量或变量的便利性有关的问题。
A. protected final String beta = "beta";
B. private String delta;
C. public static final String ALPHA = "alpha";
D. public String beta = "beta";
这些对安全性都无关紧要。这是应用程序中的一个变量,更改其中任何一个都只能影响应用程序的其他部分是否可以读取。如果你的应用程序本身不可信,那么你就有更大的、无法解决的技术问题。
现在,如果你在问哪一个更利于可维护性并为系统的其余部分保持一个干净的API,我们不知道,因为我们不知道你的类将如何使用,以及它的通用方式,甚至猜测什么是"通用";α"β;或";Δ;我可以告诉你,这不会编译,因为你不能像delta那样给最终变量赋值。