Параметры инициализации объекта в JAVA - PullRequest
0 голосов
/ 14 февраля 2019

Я нахожусь на пути изучения JAVA, и чем больше я учусь, тем больше я понимаю, как много я не знаю.У меня проблемы с пониманием инициализации объекта в деталях.(Я не вставил весь код для простоты).Заранее спасибо.

У меня есть класс GUI, который создает GUI, и у меня есть класс драйвера под названием Calculator с методом Main ().Моя программа работает хорошо, я просто хочу понять инициализацию объекта в деталях, потому что я немного запутался.

public class GUI {

    GUI() {

    }

    public static void Init() {

    // Code for creating GUI and elements   

    }

}
public class Calculator {

    public static void main(String args[]) {

        GUI main = new GUI(); // Option 1
        new GUI; // Option 2 
        GUI.Init(); //Option 3
    }

}

Итак, мой вопрос: если у меня есть класс с конструктором без аргументов или конструктором с данными, каков наилучший подход для запуска программы?Какова лучшая практика?Какой подход я должен использовать?

Насколько я понимаю:

GUI main = new GUI(); // This will initiate the object, but will not execute

new GUI; // This will initiate and execute my program and run

GUI.Init(); // This will run the method of GUI, therefore can be used to run the program if built that way.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Подход, который необходимо принять здесь, зависит исключительно от ваших требований.Если вам действительно не нужен объект для вызова вашей функции (то есть: если вам не нужно устанавливать значения для каких-либо переменных), то вариант 3 будет хорошим выбором.

Приведенные ниже посты могут помочь вам понятьподробнее об этих понятиях.https://stackoverflow.com/a/2671636/6761121

https://www.baeldung.com/java-initialization

0 голосов
/ 14 февраля 2019

Стандартным было бы, чтобы init (нижний регистр для правильного стиля) не был статическим методом, и чтобы он выполнялся следующим образом:

GUI main = new GUI();
main.init();

Вы создаете объект и затем вызываете его метод,Это позволяет для реального объектно-ориентированного программирования.В этой парадигме только ваш драйвер должен быть статичным, а затем он должен создавать нужные ему объекты и использовать их.

В противном случае вы просто получаете каскад статических методов, вызывающих другие статические методы, что противоречит цели объектно-ориентированного программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...