| 首先你要明白没有访问非静态数据的含义,这里访问是函数的内部直接调用到外部参数,而不是指传入的数组参数,当函数内部调用已经定义好的变量或者数组时,这才是访问了非静态变量,传入的只能算作参数。 针对你说的我写了两个函数演示一下。
 
 复制代码class Demo
{
        public static void main(String[] args)
        {
                int[] arr = {2,34,7,4,1};
                Tools.getMax(arr);
        }
}
class Tools
{
        private int[] newarr = {2,3,5,7,8};
        
        public static int getMax(int[] arr)
    {
            int max=0;
            for(int x=1; x<arr.length; x++)
            {
                    if(arr[x]>arr[max])
                            max=x;
            }
            return arr[max];
    }
        
        public  int getMin()//这里如果加上static就是错误了,因为是调用了定义好的newarr数组,访问量非静态数组
    {
            int min=0;
            for(int x=1; x<newarr.length; x++)
            {
                    if(newarr[x]<newarr[min])
                            min=x;
            }
            return newarr[min];
    }
}
主函数中直接调用了getMax方法,这里是将arr数组直接传入而非调用,在getMin方法中则是调用了定义好的newarr数组,访问量非静态数组,所以不能用static修饰。
 |