2016-06-18 2 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 언어 디자이너가 메소드가 아니라 생성자임을 나타 내기로 결정한 것입니다. (부분적으로 Java에 영감을받은 C++과 부분적으로 Java에 영감을받은 C#을 포함하여 일부 공통 언어가 있습니다.)

왜 JFrame으로 확장해야합니까? 필요한 라이브러리를 가져올 수 없습니까?

하나만 질문/질문하는 것이 가장 좋습니다.

함께 작업하는 GUI 시스템이 JFrame 인스턴스로 작동하기 때문에 JFrame을 확장해야합니다. 아는 한 클래스 의 인스턴스는JFrame이고, 해당 인스턴스와 상호 작용할 때는 JFrame에 정의 된 메소드를 사용합니다. 이것은 인터페이스로 할 수 있었지만이 경우에는 디자이너가 대신 기본 클래스를 사용했습니다.

1

public GUIsub()는 메소드가 아니며 생성자입니다. 생성자는 자바 클래스와 동일한 이름을 가져야합니다.

1

public GUIsub()는 ... "나중에 사용에 대한 객체를 준비"를 사용할 수 있습니다

관련 문제