與擴展到JFrame
和javax.swing.JFrame
有什麼不同嗎?從JFrame延伸
例子:
public class Authenticator extends JFrame {
和...
public class Authenticator extends javax.swing.JFrame {
與擴展到JFrame
和javax.swing.JFrame
有什麼不同嗎?從JFrame延伸
例子:
public class Authenticator extends JFrame {
和...
public class Authenticator extends javax.swing.JFrame {
指定它這沒有什麼區別,除非你有一個名爲JFrame
另一個類,並且不是導入它的javax.swing.JFrame
。
這就是說,正如Andrew Thompson所說,你不應該延伸JFrame
,你應該使用一個實例。
這取決於你的進口。如果您導入javax.swing.JFrame,則不會。
無論如何,你必須導入JFrame
,它最有可能來自javax.swing
包,如果包含多個JFrame
類,你只需要編寫整個包路徑,這樣編譯器就會知道你想使用哪一個,因此,如果只有一個JFrame
類,那麼進口就足夠了,不必再
如果您導入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
所以你要做什麼?
在這種情況下,您可以使用第二種方法,也稱爲完全取消名稱 現在您導入一個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!");
}
}
所以整個事情的夏日是完全合格的名稱時使用的是命名衝突,我們也可以使用這種方法時,他們沒有命名衝突,他們將在節目
沒有-ve影響
***請勿延長框架或其他頂層容器。而是創建並使用一個實例。 –
請參閱http://stackoverflow.com/q/1143923/758280 – Jeffrey
如果您有另一個類調用'JFrame',那麼您需要識別您想要使用的包 – nachokk