为什么我会收到此错误

时间:2011-06-06 05:41:39

标签: java

为什么我收到错误。在eclipse中,它表示构造函数调用应该是第一行。这是第一线。或者你不能扩展Main?

import javax.swing.JFrame;
import javax.swing.JLabel;

    public class Main extends JFrame{

        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //JLabel testLabel1 = new JLabel();
            public Main(){
                super("title bar");
            }
        }

    }

4 个答案:

答案 0 :(得分:5)

您的Main构造函数应位于main方法的。像这样:

public class Main extends JFrame {
    public Main() {
        super("title bar");
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //JLabel testLabel1 = new JLabel();
    }
}

答案 1 :(得分:0)

构造函数应该在public static void main(String[] args) {之外 它是一个函数,你不能在函数内部有一个构造函数。

答案 2 :(得分:0)

您正试图在静态方法中定义构造函数(public Main。这在Java中无效。

你可能意味着更像这样的东西:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main extends JFrame{

    /**
     * @param args
     */
    public static void main(String[] args) {
    }

    // The constructor isn't *inside* `main` anymore:
    public Main(){
        super("title bar");
    }
}

答案 3 :(得分:0)

有多个错误。

第一个错误是您在方法中定义类的构造函数。这是非法的,导致编译器抱怨它期望new关键字而不是public。 其次,必须在第一行调用super类方法。但是,由于之前的错误,编译器现在感到困惑,它已经报告了。

您可能还希望改进类命名约定。很容易在main(String args[]方法(它是代码的入口点),Main类及其构造函数Main()(由编译器生成)之间混淆。