일단 최종 변수에 값이 할당되면 변경할 수 없습니다. 그러나 난 그냥이에 대한 몇 가지 질문이있다 : 나는 필드가 때, 클래스 외부 static final JButton button;
말을하고 main
방법, 그것을 button = new JButton("OK");
을 값을 할당하려고자바 최종 변수
, 오류가 발생합니다 최종 수정자를 제거하라는 메시지가 나옵니까? 그러나 원래
button
변수가 아직 객체를 참조하지 않았으므로 한 번 할당 할 수있는 노출이 있었습니까?둘째,
button
에 대한 참조를 완전히 제거 했으므로 클래스 외부에static final JButton button;
이 있다는 것을 알았습니다. "내 마지막 비어있는 필드 버튼이 초기화되지 않았을 수 있습니다." 즉, 모든 최종 필드가 이어야하며을 초기화해야합니까? 그렇다면 나중에 초기화 할 수 없으므로 초기화해야합니다.또한 바보 같은 질문이지만, 최종 변수가 인스턴스 또는 데이터 유형을 참조 할 때 다른 것으로 할당 될 수 없다고 가정 할 때 올바른지 맞습니까?
이 코드는 완전하지 않지만 내 지점 설명하기 위해 제공됩니다 클래스 범위에서
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);
}
}
그것을 선언시 최종 변수를 초기화 할 의무 아닌가? –