JAVA报错:Exception in thread "main"……求帮助?

题目要求:
(1)创建MaxArray类:
 声明1个一维数组的成员变量,例如:int array[ ]; //一维数组
 设置有参构造方法,如:MaxArray(int n){ …… } //有参构造方法,为成员变量创建长为n的一维数组
 设置无参构造方法:通过键盘输入数组长度n,然后为成员变量创建长度为n的数组。
 设置修改数组元素值的成员方法:int setArray(){ …//输入数组各元素的值 }
 设置查找并返回数组最大值的成员方法:int findMax( ){……}
 设置输出数组所有元素的成员方法:void output( ){……}
(2)创建主类CreateArray:生成MaxArray类对象,并调用相关成员方法求数组最大值,并输出。

代码块

import java.util.*;
class MaxArray{
    int len;
    int array[];

    //有参构造方法
    MaxArray(int n){    
        len=n;
        int array[]=new int[len];
    }

    //无参构造方法
    MaxArray(){ 
        Scanner num=new Scanner(System.in);
        len=num.nextInt();
        int array[]=new int[len];
    }

    //修改数组元素值的成员方法
    void setArray(){
        Scanner num=new Scanner(System.in);
        for(int i=0;i<len;i++){
            array[i]=num.nextInt();
        }
    }

    //查找并返回数组最大值的成员方法
    int findMax(){
        int max=array[0];
        for(int i=0;i<len;i++){
            if(array[0]<array[i]){
                max=array[i];
            }
        }
        return max;
    }

    //输出数组所有元素的成员方法
    void output(){
        for(int i=0;i<len;i++){
            System.out.printf("\t"+array[i]);
            if(len%5==0){
                System.out.println();
            }
        }
    }
}

public class CreateArray {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int max;
        //生成MaxArray类对象
        MaxArray arr=new MaxArray();
        arr.setArray();
        arr.output();
        max=arr.findMax();
        System.out.println("the Max is:"+max);
    }
} 

无论是调用有参构造方法还是无参构造方法都是这样报错:
图片说明
图片说明
图片说明
图片说明

请问是哪里出了问题

MaxArray(int n){    
        len=n;
        int array[]=new int[len]; //这里定义的array数组是函数内部的局部变量,和类的成员变量array数组虽然同名,但不是一回事。
    }

诶,传少了一张调用无参构造方法然后run的图片,补:
图片说明

是空指针异常。。坐等大神来解决

你的构造方法里,并没有实例化你的数组成员array[]。你是在构造方法里面创建了一个局部对象 array[],给它赋了值,所以说你的MaxArray类 的成员变量array[]还是空的,所以你后面对这个array进行操作会报空指针的异常