the*_*sor 2 java methods swing
在我遇到的几乎所有代码示例中,setDefaultCloseOperation派生类中的方法的参数JFrame是一些常量,例如,JFrame.EXIT_ON_CLOSE.在这种情况下,因为EXIT_ON_CLOSE是常量JFrame,它可以直接访问,并且不需要getter方法来访问它.为什么我们仍然用超类名称作为前缀JFrame?任何Swing类都是子类JFrame,并且会继承EXIT_ON_CLOSE常量,那么为什么不写出方法调用setDefaultCloseOperation(EXIT_ON_CLOSE)
而不是setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)?
真正需要显式超类名吗?
EXIT_ON_CLOSE 是JFrame类的静态成员,这意味着它在JFrame类的所有实例中都是相同的.
为什么要指定课程?
因为如果EXIT_ON_CLOSE在子类中有变量怎么办?将使用该变量.因此,要获取静态变量的正确int值(在本例中),必须说明定义变量的类.
它类似于this.variable在为类的实例寻址类变量时所说的原因.在这里,我们只是说类名JFrame而不是this因为变量在所有实例中都是相同的.