如何在Java中使用来自另一个类的变量

时间:2011-11-17 17:05:00

标签: java arrays variables

请帮助我如何使用 deviation_2DArray.java 中的变量 进入 NBC.java NBC.java 我希望b[i]d[i][j]平均c[j]

示例:

b[1]=avg (d[1][1]+d[1][2]+.....+d[1][5])

提前致谢。

2DArray.java

public class 2DArray {

    public static void main(String[] args) {

        double[][] d = new double[6][4];

        double[][] e = {
            {}, {
                0.0, 0.6, 0.0, 0.0
            }, {
                0.0, 0.2, 0.5, 0.1
            }, {
                0.0, 0.2, 0.5, 0.4
            }, {
                0.0, 0.2, 0.5, 0.7
            }, {
                0.0, 0.0, 0.0, 0.9
            }
        };

        double[] avg = new double[4];
        double[] sum = new double[4];
        int i, j, k;

        //average of column
        for (j = 1; j < e[1].length; j++) {
            for (i = 1; i < e.length; i++)
            System.out.println("e[" + i + "][" + j + "] = " + e[i][j]);
        }

        for (j = 1; j < e[1].length; j++) {

            sum[j] = 0.0;
            k = 0;
            for (i = 1; i < e.length; i++)

            if (e[i][j] > 0.0) {
                sum[j] += e[i][j];
                k++;
            }
            avg[j] = sum[j] / k;

            System.out.println("Average of j[" + j + "] = " + avg[j]);

        }

        for (j = 1; j < e[1].length; j++) {
            for (i = 1; i < e.length; i++)

            if (e[i][j] > 0.0) {

                d[i][j] = Math.abs(e[i][j] - avg[j]);
                System.out.println("d[" + i + "][" + j + "] = " + d[i][j]);

            }
        }

    }
}

NBC.java

public class NBC {
    public static void main(String[] args) {

        double[] b = new double[6];
        double[] c = new double[4];
        int count;

        b[i] = d[i][j] / count;
    }

}

3 个答案:

答案 0 :(得分:1)

我会将其恢复为一个简单的词:getters

答案 1 :(得分:1)

您需要在2DArray类中创建类级别字段,并为这些字段提供getter方法。然后NBC需要有2DArray的实例,除非您将这些字段/ getter设为静态。

目前d中的2DArray变量仅在main方法的范围内,因此仅提供getter不会解决问题,因为d只有范围方法。

此外,每个类都有自己的main方法。每个应用程序只能执行一个main。那么您的控制流程如何从2DArray变为NBC?如果2DArray正在调用NBC,那么您可以将数组作为参数传递。

答案 2 :(得分:0)

在2DArray中创建一个类似这样的方法:

public double getElement(int i, int j) {
  return d[i][j];
}