调用Java方法时出错

时间:2015-02-05 17:52:57

标签: java methods

我是Java新手,在调用方法时遇到问题。我希望有人能够帮我弄清楚发生了什么。

我的代码如下:

public class QuickFindUF
{
    private int[] id;
    public QuickFindUF(int N)
    {
        id = new int[N];
        for (int i = 0; i < N; i++)
            id[i] = i;
    }

    public boolean connected(int p, int q)
    { return id[p] == id[q]; }

    public void union(int p, int q)
    {
        int pid = id[p];
        int qid = id[q];
        for (int i = 0; i < id.length; i++)
            if (id[i] == pid) id[i] = qid;
    }
}

我看了一下Stack,发现way to call my method将使用以下代码:QuickFindUF x = new QuickFindUF(10);

当我运行此操作时,我收到错误消息

QuickFindUF.java:27: error: class, interface, or enum expected
QuickFindUF x = new QuickFindUF(10);
^
1 error

如果有人能指出我正确的方向,我会非常感激。感谢。

2 个答案:

答案 0 :(得分:3)

如果您发布的代码是完整代码,则表示您需要一个主要方法。

public class QuickFindUF
{
    //
    // add this so you can run code when your program executes
    //
    public static void main(String[] args)
    {
        QuickFindUF x = new QuickFindUF(10);
        //
        // call your methods on x here
        // e.g.
        // boolean connected = x.connected(2, 3);
        //
    }

    private int[] id;
    public QuickFindUF(int N)
    {
        id = new int[N];
        for (int i = 0; i < N; i++)
            id[i] = i;
    }

    public boolean connected(int p, int q)
    { return id[p] == id[q]; }

    public void union(int p, int q)
    {
        int pid = id[p];
        int qid = id[q];
        for (int i = 0; i < id.length; i++)
            if (id[i] == pid) id[i] = qid;
    }
}

答案 1 :(得分:1)

你的main方法可能在类之外,你需要像这样在类中声明main方法:

public static void main(String []args){

QuickFindUF x = new QuickFindUF(10);

}