2011-06-10 8 views
4

이 코드 줄이 있습니다.누군가가 어떻게 작동하는지 설명 할 수 있습니까?

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

와 내가 자바는 이런하는 JButton의 인스턴스를 작성하기 전에 yellowButton의 종류를 알 필요가 생각 작동?

JButton yellowButton = new JButton("Yellow"); 

누군가가 어떻게 작동하는지 설명 할 수 있습니까?

답변

9

후 그 yellowButton 아마 당신은 통지를하지 않은 클래스 필드 것을 의미한다.

클래스를 다시 확인하십시오. 변수 foo이 방법의 범위에서 찾을 수없는 경우

class ButtonPanel extends JPanel implements ActionListener 
{ 
    private JButton yellowButton; 

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

     /* etc */ 
    } 
} 

, 그것은 자동으로 this.foo에 떨어지면 : 당신은 아마이 것은이 같은 더 많은 무언가이다. 반대로 PHP와 같은 일부 언어에는 이러한 유연성이 없습니다. (PHP의 경우 클래스 필드에 액세스하려면 $foo 대신 항상 $this->foo을 사용해야합니다.)

+0

어딘가에 정의되었습니다. 감사합니다. – sliucon13

1

작동하지 않아야합니다. 항상 변수 유형을 선언해야합니다. 어딘가에 코드 조각이 누락되지 않았습니까?

처음 뵙겠습니다. 정말 작업을 수행하는 경우

private JButton yellowButton = null; 
관련 문제