Java容器类,我应该使用所有组件作为字段还是只在构造函数中创建它们
哪种方法更好:假设我有一个扩展容器实例的类,我想向其中添加组件,我应该将组件用作字段还是在构造函数中创建它们?请详细说明。通常,如果添加组件后不需要触摸组件,请使用构造函数方法;如果需要访问它们,例如,使用Java容器类,我应该使用所有组件作为字段还是只在构造函数中创建它们,java,components,containers,Java,Components,Containers,哪种方法更好:假设我有一个扩展容器实例的类,我想向其中添加组件,我应该将组件用作字段还是在构造函数中创建它们?请详细说明。通常,如果添加组件后不需要触摸组件,请使用构造函数方法;如果需要访问它们,例如,使用mouseListener更改JPanel的颜色,则使用一个字段。好的,我明白了,尽管我不明白为什么在示例中您提供了需要访问面板的权限?如果面板上有鼠标侦听器,您可以使用e.getSource()访问它不?是的,您是对的。假设我们使用ActionListener和JButton来更改颜色;e、
mouseListener
更改JPanel
的颜色,则使用一个字段。好的,我明白了,尽管我不明白为什么在示例中您提供了需要访问面板的权限?如果面板上有鼠标侦听器,您可以使用e.getSource()访问它不?是的,您是对的。假设我们使用ActionListener和JButton来更改颜色;e、 getSource()将返回按钮,我们无法更改JPanel的颜色,除非它存储在变量中。当您知道要触摸组件,但不确定是否可以通过e.getSource()或其他类似方式访问组件时,可以使用字段。好的,谢谢您的解释;)我们之所以使用构造函数方法,是因为内存方面的原因?不是真的;与java的工作方式相比,变量没有太大的开销,但保持对象的活动性确实如此。Java使对象在使用期间保持活动状态(变量、字段或对象包含其副本)。有时候,拥有你不需要的字段是没有意义的。此外,它使代码更具可读性。正如俗话所说,当你再也不能移除任何东西时,完美就会实现。