In meiner Anwendung habe ich viele Swing-Komponenten. Sollte ich diese Komponentenvariablen in meiner Klasse final machen und dann im Konstruktor instanziieren oder sollte ich sie direkt instantiieren, ohne sie endgültig zu machen.Sollte ich Swing-Komponenten in meiner Anwendung endgültig deklarieren ..?
public class MyClass
{
private final JFrame firstFrame;
private final JPanel firstPanel;
private final JButton firstButton;
public MyClass()
{
firstFrame = new JFrame();
firstPanel = new JPanel();
firstJButton = new JButton();
}
}
ist dieser Ansatz besser unter Berücksichtigung Design und Optimierung oder der untere ist besser.
public class MyClass
{
public void createGUI()
{
private JFrame firstFrame = new JFrame();
private JPanel firstPanel = new JPanel();
private JButton firstJButton = new JButton();
}
}
Ihr zweites Snippet ist falsch, Sie können das private Schlüsselwort nicht innerhalb einer Methode haben. In Bezug auf Ihre Frage, wenn die Variable nicht durch eine andere Methode zugegriffen wird, sollte es nicht global sein. Sie sollten es innerhalb der Methode deklarieren, in der es verwendet wird. Wenn eine Variable nicht geändert wird, sollten Sie das endgültige Schlüsselwort hinzufügen. – explv
Siehe auch [* Initial Threads *] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html). – trashgod