将参数传递给构造函数

时间:2016-04-09 12:06:51

标签: java parameters constructor

我有一个非常基本的问题,但我很难做对。基本上,我有一个构造函数,它使用this.在其上定义了一些方法。我想将这些方法中的一个传递给参数,但我正在努力以不会导致错误的方式声明它。这是我的代码:

public class Graph {
    public Graph(int[][] gA) {
        boolean[] visited = new boolean[gA.length];
        Arrays.fill(visited, 0, gA.length, false);

        //this is the bit I'm struggling with:
        this.adj(int v) = gA[v];
        this.array = gA;
        this.visited = visited;
    }

}

如何让this.adj接受参数?我也试过创建一个方法声明,但也无法做到这一点。我应该使用某种设计模式吗?

由于

编辑:道歉 - 在代码摘录中犯了一个错误。 this.adj[v]应返回gA数组的一行,它只能在构造函数中访问,因此我无法将该函数移到外面。

2 个答案:

答案 0 :(得分:2)

这:

this.adj(int v) = adj(v);

是错误的方式。只需使用:

adj(v); // Call the method adj with the parameter v

由于您是在构造函数中调用它,因此方法是否为static并不重要。构造函数可以调用它们。

修改

  

我希望adj [v]在v上返回gA行。我编辑了上面的代码

你可以这样做:

gA[v] = adj(v);

答案 1 :(得分:0)

为什么你不打算调用你定义的方法?

public class Graph {
    private YOUR_TYPE adj;
    public Graph(int[][] gA) {
        boolean[] visited = new boolean[gA.length];
        Arrays.fill(visited, 0, gA.length, false);

        //this is the bit I'm struggling with:
        this.adj  = adj(v);
        this.array = gA;
        this.visited = visited;
    }

   YOUR_TYPE adj(int v){
    return .... something from YOUR_TYPE
   }

}