2

以下代码向我返回了一条错误消息:
"constructor call must be the first statment in a constructor."

我不明白。我的代码中的构造函数是第一条语句。我究竟做错了什么?

public class labelsAndIcons extends JFrame
{
    public labelFrame()
    {
        super( "Testing JLabel" );
    }
}
4

4 回答 4

6

构造函数名称必须与类名称相同,因此请将类名称更改为labelFrame或将构造函数名称更改为labelsAndIcons

示例(注意通常第一个字母在 java 中是大写字母)

public class LabelFrame extends JFrame {
    public LabelFrame() {
        super( "Testing JLabel" );
    }
}
于 2012-07-13T06:17:42.993 回答
2

你的意思是

public class labelsAndIcons extends JFrame {
    public labelsAndIcons ()
    {
        super( "Testing JLabel" );
    }
}
于 2012-07-13T06:18:18.670 回答
0

构造函数名称必须与类名称相同。让我们看看这个:

constructor call must be the first statement in a constructor  

中的构造器词constructor call引用了超类的构造器,它是super();

in 中的构造函数词是in a constructor指您的类的 consucor,即:public labelsAndIcons()

所以你需要把你的代码缩小到:

public class labelsAndIcons extends JFrame
{
  public labelsAndIcons ()
  {
     super( "Testing JLabel" );
  }
}
于 2012-07-13T06:26:04.160 回答
0

理想情况下,您的代码应该失败,Invalid Method declartion因为public labelFrame()

  • 既不是构造函数(因为构造函数与类名同名)
  • 既不是正确的方法声明。

无论像这样更改您的代码:

public class labelsAndIcons extends JFrame
{
  public labelsAndIcons ()
  {
     super( "Testing JLabel" );
  }
}
于 2012-07-13T06:26:59.200 回答