为什么我的方法与类同名?

时间:2016-06-18 08:03:27

标签: java methods jlist

我使用以下代码创建了一个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,为什么我不能导入必要的库?

我对此感到很困惑。感谢。

3 个答案:

答案 0 :(得分:2)

  

为什么我的方法必须与我的班级同名?

这不是一种方法,而是constructor。在声明构造函数时使用类的名称只是Java语言设计者决定表明它是构造函数而不是方法的方式。 (这是一种常见模式,其他一些语言也是如此,包括C ++ [部分启发Java]和C#[部分受Java启发]。)

  

为什么我必须扩展到JFrame,为什么我不能只导入必要的库?

最好在SO上提出一个问题/问题。

您必须扩展JFrame,因为您正在使用的GUI系统适用于JFrame的实例。据他所知,您的类的实例是 JFrame,它在与这些实例交互时使用JFrame上定义的方法。这可以通过接口完成,但本例中的设计者改为使用基类。

答案 1 :(得分:1)

public GUIsub()不是一个方法,它是一个构造函数。构造函数必须与Java中的类具有相同的名称。

答案 2 :(得分:1)

public GUIsub()是该类的构造函数... 您可以将它用于"准备稍后使用的对象" ...