急!!java代码报错:Exception in thread "main" java.lang.NullPointerException
代码如下:importjava.util.*;classMaxArray{intlen;intarray[];MaxArray(){Scannerin=newScanne...
代码如下:import java.util.*;class MaxArray{ int len; int array[]; MaxArray(){ Scanner in=new Scanner(System.in); len=in.nextInt(); } void setArray(){ Scanner in=new Scanner(System.in); for(int i=0;i<len;i++) array[i]=in.nextInt(); } int findMax(){ int max=array[0]; for(int i=1;i<len;i++){ if(array[i]>max) max=array[i]; } return max; } void output(){ System.out.println("The array:"); for(int i=0;i<len;i++) System.out.println(+array[i]); }}public class CreateArray { public static void main(String[] args) { // TODO Auto-generated method stub MaxArray ma=new MaxArray(); ma.setArray(); ma.output(); int max=ma.findMax(); System.out.println("max="+max); }}报错如下:Exception in thread "main" java.lang.NullPointerException at MaxArray.setArray(CreateArray.java:14) at CreateArray.main(CreateArray.java:37)另外我输入有错吗?(初学java,望大神尽量讲得通俗)
代码居然是一大片的。。。
补图。。请看。 展开
代码居然是一大片的。。。
补图。。请看。 展开
展开全部
看了下,你在构造MaxArray的时候没有初始化你的array数组
MaxArray() {
Scanner in = new Scanner(System.in);
len = in.nextInt();
array = new int[len];
}
这里改成这样就行了
更多追问追答
追答
你要根据你的错误来看,你的错误是nullpointerException,其实就是你的array没有创建,你一开始的array放到属性里面默认值是null,这时你并没有为这个数组分配内存,但是你下面又直接要使用这个数组,所以报错了。(数组必须在使用前分配内存,或者在java里面叫创建数组)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询