2016-06-18 6 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

Вы действительно должны прочитать о * оченьстях * ООП и Java. Это объясняется в первые 5 минут каждого учебника ООП. – Polygnome

ответ

2

Почему мой метод должен иметь то же имя, что и мой класс?

Это не метод, это constructor. Использование имени класса при объявлении конструктора - это просто способ, которым разработчики языка Java решили указать, что это конструктор, а не метод. (Это общая закономерность, некоторые другие языки делают это тоже, в том числе C++ [который частично вдохновлен Java] и C# [который был частично вдохновлен Java].)

И почему я должен распространяться на JFrame, почему не могу ли я просто импортировать необходимые библиотеки?

Это действительно лучше, если вы спросите один вопрос/вопрос.

Вы должны расширить JFrame, потому что система GUI, с которой вы работаете, работает с экземплярами JFrame. Насколько известно, экземплярами вашего класса являютсяJFrame s, и он использует методы, определенные на JFrame при взаимодействии с этими экземплярами. Это могло быть сделано с интерфейсами, но дизайнеры в этом случае пошли вместо базового класса.

1

public GUIsub() не метод, он конструктор. Конструкторы должны иметь то же имя, что и класс в Java.

1

public GUIsub() является конструктором класса ... вы можете использовать его для «подготовки объекта для использовались позже» ...

Смежные вопросы