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

问题描述:

我已经使用此代码创建一个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

为什么我的方法必须与我的类具有相同的名称?

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

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

这是真的最好的所以要问一个问题/问题。

您必须扩展JFrame,因为您正在使用的GUI系统适用于JFrame的实例。就其所知,您的类的实例为JFrame s,并且它在与这些实例交互时使用在JFrame上定义的方法。这可能是通过接口完成的,但是这种情况下的设计人员是使用基类来代替的。

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

public GUIsub()是类的构造函数... ,你可以用它来“备战后来被使用的对象” ......