При написании автономного java-приложения в статическом контексте я вижу много кода для начинающих. Я использовал эту проблему, создав экземпляр класса в основном и работая от конструктора.Лучшая практика в отношении статического контекста
Я добавил несколько примеров очень простой автономной программы и хотел бы знать, есть ли лучшие практики для «ухода» из статического контекста.
Я также хотел бы знать, есть ли какие-то автономные java-программы, которые должны выполняться в статическом контексте или, в частности, в основном методе, что это функция, помимо того, что она является точкой входа в каждую отдельную Java-программу.
Любой материал для чтения также приветствуется!
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ExampleStatic
{
JLabel label;
public static void main(String[] args)
{
//Option 1 - Work from static context:
JFrame frame = new JFrame();
frame.setBounds(10,10,100,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel staticlabel = new JLabel("static");
frame.add(staticlabel);
frame.setVisible(true);
//Option 2 - Create instance, call initialisation function
ExampleStatic e = new ExampleStatic();
e.initialise();
//Option 3 - Create instance, handle initialisation in constructor
new ExampleStatic(true);
}
public ExampleStatic(){}
public ExampleStatic(boolean init)
{
JFrame frame = new JFrame();
frame.setBounds(10,10,100,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel("constructor");
frame.add(label);
frame.setVisible(true);
}
public void initialise()
{
JFrame frame = new JFrame();
frame.setBounds(10,10,100,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel("init function");
frame.add(label);
frame.setVisible(true);
}
}
Вариант 2 и Вариант 3 оба в порядке. –