我知道這不起作用,但它只是一個例子,所以我可以理解爲什麼它不起作用。Java - 靜態和最終變量
public class MyClass {
final static JButton b;
public void myMethod() {
b = new JButton("Hello!");
}
}
1)爲什麼final static JButton b;
行有錯誤?爲什麼當我刪除static
關鍵字時,此錯誤消失?不管有沒有static
關鍵字
2),有一個我不知道爲什麼這是該行b = new JButton("Hello!");
錯誤?我認爲可以在方法中實例化最終變量。
只是想澄清提問者,你無法在構造函數中初始化一個'static final'的原因是因爲訪問靜態屬性不需要構造對象。 – ametren
@ametren不完全 - 因爲如果它不是'final',你可以在構造函數中設置它(儘管它仍然不需要構造對象)。你不能在構造函數中設置它的原因是'static final'只能被賦值一次,而構造函數可以被調用很多次。 – yshavit
@yshavit夠了! – ametren