我有两个类:ID3和Node,如下所示:
class Node {
public Vector kept;
public Node[] children;
public Node parent;
public Node() {
kept = new Vector();
}
}
在另一个班级(ID3
)我有一个方法:
public void sTree(Node node, int heuristic) {
int noOfIn = noOfAttributes - 1;
}
我希望将sTree()
方法移到另一个类(Node
),因为它与树有关。但是,变量noOfAttributes等在ID3类(全局)中定义,因此如果我移动此方法,则无法在Node类中找到它(由于其他方法,我需要它们在ID3类中,所以我可以&#39 ; t从ID3中删除它们并将它们放到Node类中)。我该如何解决这个问题?
答案 0 :(得分:0)
您可以在ID3类中创建一个静态变量,并在Node中调用它。在ID3中创建一个静态变量,如下所示:
public static noOfEx;
然后在适用时将其设置在ID3类中。要从Node调用它,只需执行
int noOfEx = ID3.noOfEx;
答案 1 :(得分:0)
您需要将共享数据移动到新类中。创建此类的单个实例,并将其传递给您创建的Node
和ID3
的每个实例。
为了使此过程更简单,我建议为节点和ID创建factory。工厂了解所有构建模块以及如何组装它们。