延伸到JFrame
和javax.swing.JFrame
是否有区别?
示例:
public class Authenticator extends JFrame {
和...
public class Authenticator extends javax.swing.JFrame {
答案 0 :(得分:6)
除非您有另一个名为JFrame
的类并且正在导入而不是javax.swing.JFrame
,否则没有区别。
那就是说,正如Andrew Thompson所说,你不应该扩展JFrame
,你应该使用一个实例。
答案 1 :(得分:1)
如果您导入 javax.swing.JFrame; ,则使用
公共类Authenticator扩展了JFrame {
如果没有那么使用
公共类Authenticator扩展了jvax.swing.JFrame {
但是第二种方法主要用于在不同的包含中具有相同名称的类,以区分类。
例如
[ - ] mypackage的
| ---- [ - ] pakage1
| --- TestClass.java
| ---- [ - ] pakage2
| --- TestClass.java
这是我们有一个名为mypackage的包和两个子包pakage1和pakage2的情况
现在如果我们只是导入它就会给出这个
import mypackage.pakage1.TestClass;
import mypackage.pakage2.TestClass;
class Testw
{
public static void main(String []args)
{
System.out.println("Swah!");
}
}
会出现以下错误
C:\Program Files\Java\jdk1.6.0_38\bin>javac Testw.java
Testw.java:2: mypackage.pakage1.TestClass is already defined in a single-type import
import mypackage.pakage2.TestClass;
^
1 error
那你干什么?
在这种情况下,您使用第二种方法,也称为完全quailfied名称
现在你导入一个pakage并使用完全限定的名称。
import mypackage.pakage1.TestClass;
class Testw
{
public static void main(String []args)
{
TestClass testclass1 = new TestClass();
mypackage.pakage2.TestClass testclass2 = new mypackage.pakage2.TestClass();
System.out.println("Swah!");
}
}
所以整个事情的总结是当名字冲突时使用完全限定名称,我们也可以在他们没有名字冲突时使用这种方法,他们将对程序没有影响
答案 2 :(得分:0)
这取决于您的导入。如果导入javax.swing.JFrame,则为。
答案 3 :(得分:0)
你必须导入JFrame
,它最有可能来自javax.swing
包,如果包含多个JFrame
类,你只需编写整个包路径,所以编译器会知道你要使用哪一个,所以如果只有一个JFrame
类,那么导入就足够了,你不必再指定它