Как получить доступ к нестатическому методу без объекта? - PullRequest
0 голосов
/ 03 июля 2019

Я новичок в JavaFX.В моем следующем коде getHBox() - это нестатический метод, доступ к которому осуществляется без создания объекта.

public class Main extends Application { 
    public void start(Stage primaryStage) {

        //Main m = new Main();

        try {
            BorderPane rootPane = new BorderPane();

            rootPane.setTop(getHBox());
            //rootPane.setTop(m.getHBox());

            Scene scene = new Scene(rootPane,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public HBox getHBox()
    {
        HBox hb = new HBox(15);
        hb.getChildren().add(new Button("Press"));
        return hb;
    }


    public static void main(String[] args) {
        launch(args);
    }
}

Теперь я посмотрел ответы в Stackoverflow.Ребята что-то говорят об ученике.Чем метод getHBox() отличается от любого другого метода?Пожалуйста, предоставьте некоторые объяснения или направьте меня к соответствующему учебнику.

1 Ответ

3 голосов
/ 03 июля 2019

В моем следующем коде getHBox() - это нестатический метод, доступ к которому осуществляется без создания объекта.

Это неверно.Как используется в представленном коде, getHBox() вызывается только start(), другим нестатическим методом.Как и сам метод экземпляра, start() должен вызываться для объекта (например, для экземпляра JavaFX).Вызов getHBox() без указания целевого объекта неявно направлен на тот же объект, как если бы это был this.getHBox().

Чем метод getHBox() отличается от любого другого метода?

Это не имеет никакого отношения к JavaFX.

...