在編寫獨立的Java應用程序時,我在靜態上下文中看到很多初學者代碼。 我曾經通過在main中創建一個類的實例並使用構造函數來解決此問題。有關靜態上下文的最佳實踐
我已經添加了一個非常簡單的獨立程序的例子,並想知道是否有「離開」靜態上下文的最佳實踐。
我也想知道是否有一些獨立的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都很好。 –