我有一个非常基本的问题,但我很难做对。基本上,我有一个构造函数,它使用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
数组的一行,它只能在构造函数中访问,因此我无法将该函数移到外面。
答案 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
}
}