2016-06-18 63 views
-2

我已經使用此代碼創建一個JDialog:爲什麼我的方法與類名稱相同?

public class GUIsub extends JFrame { 

private JLabel item1; 

public GUIsub() { 
    super("The title"); 
    setLayout(new FlowLayout()); 
     item1 = new JLabel("This is a JLabel!"); 
     item1.setToolTipText("Are you hovering?!"); 
     add(item1); 
    } 
} 

爲什麼我的方法必須具有相同的名稱作爲我的班?它有什麼好處,我能用另一個名字得到相同的結果嗎?如果是這樣,怎麼樣?爲什麼我必須擴展到JFrame,爲什麼我不能只導入必要的庫?

我對此很困惑。謝謝。

+0

不要問**在問題二**的問題。問一個問題。如果您有兩個問題,請單獨發佈。更多:[*我如何提出一個好問題?](/ help/how-to-ask) –

+0

對不起,我不知道。 – Playdowin

+0

你應該真的瞭解OOP和Java的非常基礎知識。這在每個OOP教程的前5分鐘內都有解釋。 – Polygnome

回答

2

爲什麼我的方法必須與我的類具有相同的名稱?

這不是一種方法,它是一個constructor。在聲明構造函數時使用類的名稱就是Java語言設計者決定表明它是構造函數而不是方法的方式。 (這是一個常見的模式,其他一些語言做到這一點,包括C++ [這部分激勵的Java]和C#[其中部分被Java的啓發。)

,爲什麼我要擴展到JFrame的,爲什麼我不能只導入必要的庫嗎?

這是真的最好的所以要問一個問題/問題。

您必須擴展JFrame,因爲您正在使用的GUI系統適用於JFrame的實例。就其所知,您的類的實例爲JFrame s,並且它在與這些實例交互時使用在JFrame上定義的方法。這可能是通過接口完成的,但是這種情況下的設計人員是使用基類來代替的。

1

public GUIsub()不是一個方法,它是一個構造函數。構造函數必須與Java中的類名稱相同。

1

public GUIsub()是類的構造函數... ,你可以用它來「備戰後來被使用的對象」 ......

相關問題