如何访问java构造函数?

时间:2014-01-03 08:24:05

标签: java class

定义了一个类WeightedQuick联合,但是有公共QuickunionFind(int N)它是什么?它是一个方法然后我如何传递它的值N,或者如果它是什么,如何传递N的值传递到它或如何被激活 感谢所有回答的人,我是编码新手,意识到问题很愚蠢。

public class WeightedQuickUnionUF {
private int[] id;    // id[i] = parent of i
private int[] sz;    // sz[i] = number of objects in subtree rooted at i
private int count;   // number of components

/**
 * Initializes an empty union-find data structure with N isolated components 0 through N-1.
 * @throws java.lang.IllegalArgumentException if N < 0
 * @param N the number of objects
 */
public WeightedQuickUnionUF(int N) {
    count = N;
    id = new int[N];
    sz = new int[N];
    for (int i = 0; i < N; i++) {
        id[i] = i;
        sz[i] = 1;
    }
}

5 个答案:

答案 0 :(得分:1)

您的代码中没有内部类。

由于它是一个没有返回值的方法,您可以告诉它是constructor,用于初始化您的类。在创建WeightedQuickUnionUF的新实例时传入值,例如:

WeightedQuickUnionUF weightedQuickUnionUF = new WeightedQuickUnionUF(3);

答案 1 :(得分:0)

它是类的构造函数。您可以使用以下内容调用它: new WeightedQuickUnionUF(1);

答案 2 :(得分:0)

你的意思是public WeightedQuickUnionUF(int N),对吧?这是你班级的构造函数。每当您创建此类的新实例时,都会调用它,例如new WeightedQuickUnionUF(1)

答案 3 :(得分:0)

我认为你是java编程的新手?与定义它的类同名的“方法”,没有返回类型称为构造函数。只要实例化该类的对象,就会执行它。

如果你没有意识到这一点,那么我建议你尝试一些java教程。

答案 4 :(得分:0)

这里没有内部课程。

您已定义了一个名为WeightedQuickUnionUF的类。通过执行此操作创建类

int n = 42;
WeightedQuickUnionUF myInstanceOfThisClass = new WeightedQuickUnionUF(n);

为了定义类创建代码的样子(kewword new之后的部分),一个类有一个名为构造函数的方法,它与类本身具有相同的名称,在你的情况下

public WeightedQuickUnionUF(int N)

这表示可以创建类WeightedQuickUnionUF的实例,并为该方法提供一个名为N的值。

为了使用它,您的程序需要一个入口点(它来自的地方),如此

 public static void main(String args)
 { 
    int n = 42;
    WeightedQuickUnionUF myInstanceOfThisClass = new WeightedQuickUnionUF(n);
 }

现在你有一个变量,它包含一个名为myInstanceOfThisClass的类的实例,然后你就可以从控制台窗口或IDE或其他任何东西运行你的类了。