2011-06-10 102 views
4

我有這行代碼。有人可以解釋這是如何工作的?

class ButtonPanel extends JPanel implements ActionListener 
{ 
    public ButtonPanel() 
    { 
     yellowButton = new JButton("Yellow"); 

和它的作品,我認爲Java需要創建一個JButton這樣的一個實例之前需要了解yellowButton的類型?

JButton yellowButton = new JButton("Yellow"); 

有人可以解釋這是如何工作的?

回答

9

如果確實有效,那麼這意味着yellowButton可能是您沒注意到的類字段。

再次檢查課程。什麼,你可能有更多的東西是這樣的:

class ButtonPanel extends JPanel implements ActionListener 
{ 
    private JButton yellowButton; 

    public ButtonPanel() 
    { 
     yellowButton = new JButton("Yellow"); 
     /* this.yellowButton == yellowButton */ 

     /* etc */ 
    } 
} 

如果一個變量foo不能在法的範圍中找到,它會自動回落到this.foo。相比之下,像PHP這樣的語言沒有這種靈活性。 (對於PHP,你總是必須做$this->foo而不是$foo來訪問類字段。)

+0

你是對的,它被定義爲某處謝謝 – sliucon13 2011-06-10 18:43:05

1

它不應該工作,你總是需要聲明你的變量的類型。你確定你沒有錯過某段代碼嗎?

像這樣在開始。

private JButton yellowButton = null; 
相關問題