题目要求:
(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数组虽然同名,但不是一回事。
}
是空指针异常。。坐等大神来解决
你的构造方法里,并没有实例化你的数组成员array[]。你是在构造方法里面创建了一个局部对象 array[],给它赋了值,所以说你的MaxArray类 的成员变量array[]还是空的,所以你后面对这个array进行操作会报空指针的异常