在JavaFx中,我明白如果我想讓一個按鈕在點擊時運行一些代碼,我需要以某種方式讓我想要在代碼中運行的代碼,並且因爲這是Java,所以我包裝了該方法在擴展EventHandler的類中。例如:爲什麼設計JavaFX事件處理是爲了創建一個持有handle()方法的類的實例?
// (myButton is a reference variable to a Button object)
myButton.setOnAction(new MyButtonEventHandlerClass());
// inner class
public class MyButtonEventHandlerClass extends EventHandler<ActionEvent>{
public void handle(ActionEvent e) {
// (some code)
}
}
我的困惑是:爲什麼JavaFX的設計要求我創建一個持有handle()方法的類的實例?我曾經認爲在使用對象的實例變量時會使用非靜態方法;換句話說,如果你只需要一個不需要對象的方法,那麼你應該使用靜態方法。在這種思想中,handle()聽起來應該是一個靜態方法。
爲什麼handle()不是靜態方法?
啊,我沒有意識到,非靜態方法不能被覆蓋。謝謝! – silph