将方法移动到Java中的另一个类

时间:2015-01-05 16:10:24

标签: java class

我有两个类: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类中)。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以在ID3类中创建一个静态变量,并在Node中调用它。在ID3中创建一个静态变量,如下所示:

public static noOfEx;

然后在适用时将其设置在ID3类中。要从Node调用它,只需执行

int noOfEx = ID3.noOfEx;

答案 1 :(得分:0)

您需要将共享数据移动到新类中。创建此类的单个实例,并将其传递给您创建的NodeID3的每个实例。

为了使此过程更简单,我建议为节点和ID创建factory。工厂了解所有构建模块以及如何组装它们。

别忘了:Global variables are evil.