Java-最终变量
问题内容:
我知道,一旦为最终变量分配了值,就无法更改它。但是我对此有几个问题:
-
当我有一个字段时,
static final JButton button;
在类外说,然后在该main
方法中,尝试为其分配值button = new JButton("OK");
,,我收到一条错误消息,告诉我删除最终修饰符?但是,由于原始button
变量尚未引用对象,因此我印象中可以分配一次该对象? -
其次,如果我完全删除对的引用,
button
所以我只是static final JButton button;
在课程之外,那么我的IDE会声明“空白的final字段按钮可能尚未初始化。” 这是否意味着所有最终字段都 必须 初始化?如果是这样,必须将它们在那里初始化,然后我以后似乎无法对其进行初始化。 -
另外,这是一个愚蠢的问题,但是我最初的假设是,当将最终变量引用到实例或数据类型时,不能将其分配给其他任何对象是正确的,对吗?
这段代码并不完整,但是提供它来说明我的观点:
public class FinalVarTester {
static final JButton button;
public static void main(String[] args) {
JFrame frame = new JFrame();
Container container = frame.getContentPane();
container.setLayout(new BorderLayout());
button = new JButton("OK");
container.add(button, BorderLayout.SOUTH);
}
}
问题答案: