【发布时间】:2015-08-15 08:46:40
【问题描述】:
在我遇到的几乎所有代码示例中,派生自JFrame 的类中方法setDefaultCloseOperation 的参数是一些常量,例如JFrame.EXIT_ON_CLOSE. 在这种情况下,因为EXIT_ON_CLOSE 是@ 的常量987654325@,可以直接访问,不需要getter方法访问。为什么我们仍然在它前面加上超类名称JFrame?任何 Swing 类都是 JFrame 的子类,并且会继承 EXIT_ON_CLOSE 常量,所以为什么不将方法调用写成 setDefaultCloseOperation(EXIT_ON_CLOSE)
而不是setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)?
显式的超类名称真的有必要吗?
【问题讨论】:
-
1) 不要扩展
JFrame,在 99.9% 的情况下尽可能使用实例。 2) 一个更有趣的问题是“JFrame.EXIT_ON_CLOSEvsJFrame.DISPOSE_ON_CLOSE”,我会为后者大声疾呼。