java错误:构造函数调用必须是构造函数中的第一个语句

时间:2012-07-13 06:15:10

标签: java constructor

以下代码返回错误说明:
"constructor call must be the first statment in a constructor."

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

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

4 个答案:

答案 0 :(得分:6)

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

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

public class LabelFrame extends JFrame {
    public LabelFrame() {
        super( "Testing JLabel" );
    }
}

答案 1 :(得分:2)

你是说

吗?
public class labelsAndIcons extends JFrame {
    public labelsAndIcons ()
    {
        super( "Testing JLabel" );
    }
}

答案 2 :(得分:0)

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

constructor call must be the first statement in a constructor  

constructor call中的构造函数引用超类的构造函数super();

in a constructor中的构造函数单词指的是您的类的缩写:public labelsAndIcons()

所以你需要将代码缩小到这个:

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

答案 3 :(得分:0)

理想情况下,您的代码无法说Invalid Method declartion,因为public labelFrame()

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

无论你的代码如何改变:

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