Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在数组上的另一个类中调用getAverage方法_Java_Arrays_Class_Methods - Fatal编程技术网

Java 在数组上的另一个类中调用getAverage方法

Java 在数组上的另一个类中调用getAverage方法,java,arrays,class,methods,Java,Arrays,Class,Methods,我有一个类,它有一些方法,ArrayMin,ArrayMax,ArrayAvg,还有一个构造函数,它生成一个由10个值组成的数组,其中的数字在0-100之间 我并不坚持使用上述三种方法。如何调用这些方法并获得平均值、最小值和最大值?我想我可以在我的MAIN中创建Array a1=new array10之后执行a1.arraymax,但运气不好 导入java.util.Random; 公共类数组{ 公共整数大小,平均值; 公共int阵列化{ 返回大小; } 公共阵列最小a[]{ int min=a

我有一个类,它有一些方法,ArrayMin,ArrayMax,ArrayAvg,还有一个构造函数,它生成一个由10个值组成的数组,其中的数字在0-100之间

我并不坚持使用上述三种方法。如何调用这些方法并获得平均值、最小值和最大值?我想我可以在我的MAIN中创建Array a1=new array10之后执行a1.arraymax,但运气不好

导入java.util.Random; 公共类数组{ 公共整数大小,平均值; 公共int阵列化{ 返回大小; } 公共阵列最小a[]{ int min=a[0];
对于int i=0;i您缺少OOP的许多基本原则,但为了具体解决您的问题,您在构造函数中创建的int数组与方法中使用的数组不同

要解决此问题,在Array类中,需要一个实例变量来保存此数组:

私人机构【】a

现在有了这个变量,在构造函数中,而不是

int[]a=

你就是这样

a=


将实例变量设置为包含10个随机数的变量。现在,您可以删除每个方法中的参数,以使事情顺利进行。

您缺少OOP的许多基本原则,但为了具体解决您的问题,您在构造函数中创建的int数组与方法中使用的数组不同

要解决此问题,在Array类中,需要一个实例变量来保存此数组:

私人机构【】a

现在有了这个变量,在构造函数中,而不是

int[]a=

你就是这样

a=


将实例变量设置为包含10个随机数的变量。现在,您可以删除每个方法中的参数,以使事情顺利进行。

我将重构一点:

class Array {

    public static int arrayMin(int a[]) {
        int min = a[0];
        for (int i = 0; i < a.length; i++) {
            if (a[i] < min) {
                min = a[i];
            }
        }

        return min;
    }

    public static int arrayMax(int a[]) {

        int max = a[0];
        for (int i = 0; i < a.length; i++) {
            if (a[i] > max) {
                max = a[i];
            }
        }

        return max;
    }

    public static int arrayAvg(int a[]) {

        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            sum += a[i];
        }
        return sum / a.length;
    }
}

我会重构一点:

class Array {

    public static int arrayMin(int a[]) {
        int min = a[0];
        for (int i = 0; i < a.length; i++) {
            if (a[i] < min) {
                min = a[i];
            }
        }

        return min;
    }

    public static int arrayMax(int a[]) {

        int max = a[0];
        for (int i = 0; i < a.length; i++) {
            if (a[i] > max) {
                max = a[i];
            }
        }

        return max;
    }

    public static int arrayAvg(int a[]) {

        int sum = 0;
        for (int i = 0; i < a.length; i++) {
            sum += a[i];
        }
        return sum / a.length;
    }
}

同时共享main:请正确地命名方法camel case notation这样读起来要困难得多:同样共享main:请正确地命名方法camel case notation这样读起来要困难得多:
Array: [96, 56, 21, 59, 85, 31, 84, 83, 23, 80]
Max: 96
Min: 21
Avg: 61