gpt4 book ai didi

java - 我应该在我的应用程序中声明 swing 组件 final..?

转载 作者:行者123 更新时间:2023-11-30 08:01:28 26 4
gpt4 key购买 nike

在我的应用程序中,我有很多 swing 组件。我应该在我的类中将这些组件变量设置为 final 然后在构造函数中实例化,还是应该直接实例化它们而不将它们设置为 final。

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();
}
}

是这种方法更好地考虑设计和优化,还是下面的方法更好。

public class MyClass
{
public void createGUI()
{
private JFrame firstFrame = new JFrame();
private JPanel firstPanel = new JPanel();
private JButton firstJButton = new JButton();
}
}

最佳答案

如果您不打算多次 初始化您的 swing 组件,那么您可以使用 final 修饰符来明确这一点。这将防止组件被重新分配。

方法范围内不能有私有(private)修饰符,方法范围内唯一允许的修饰符是 final 修饰符。例如:

public class MyClass
{
public void createGUI()
{
final JFrame firstFrame = new JFrame();
final JPanel firstPanel = new JPanel();
final JButton firstJButton = new JButton();
}
}

不过,我更喜欢这个例子:

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();
}
}

这将确保无法重新分配组件,并提供对组件的实例范围访问,而在第一个示例中,范围仅限于 createGUI() 方法的范围。

希望这对您有所帮助。

关于java - 我应该在我的应用程序中声明 swing 组件 final..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com