繁体   English   中英

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

[英]java error: constructor call must be the first statement in a constructor

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

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

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

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

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

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

你的意思是

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

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

constructor call must be the first statement in a constructor  

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

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

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

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

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

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

无论你的代码如何改变:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM