当前位置: 代码迷 >> Java相关 >> java 如何定义一个对象数组
  详细解决方案

java 如何定义一个对象数组

热度:189   发布时间:2016-04-22 21:08:57.0
java 怎么定义一个对象数组
class student{
public
char code; /* 学号*/
char name; /* 姓名*/
int age; /* 年龄*/
char sex; /* 性别*/
float score[]= new float[3];

}


public class lianxi {
public  static lianxi student1;
public static int n = 0;
public static int m = 0;
public static student[] b = new student[10];
{for(int i=0;i<10;i++)

b[i]=new student();
}
public static void main (String args[]){

  int j=n,zhongjian1;
  Scanner sc=new Scanner(System.in);
  System.out.println("请输入待增加的学生数:\n");

  m = sc.nextInt();
  do
  {   for (int i = 0 ; i < b.length;i++) 
      b[i] = new student();          
  System.out.println("请输入第"+(j-n+1)+" 个学生的年龄:\n");
      b[j].age = sc.nextInt();
  j++;
  }while(j<n+m);
  n+=m;
  System.out.println("信息增加完毕!\n\n");
 // sort();
  System.out.println("按回车返回主菜单\n");
   student1.qq(); //////////////第63行
  }
public  void qq()
{  System.out.println("...............");
 System.out.println(b[0].age);
}
}
为什么运行后会显示

Exception in thread "main" java.lang.NullPointerException
at lianxi.main(lianxi.java:63)
我的想法是定义一个b【】对象 
比如先输入b【0】.age 之后用另一个函数输出b[0].age
必须要用另一个函数输出b[0].age 
刚刚开始学java  以前学C的~~
------解决方案--------------------
 student1.qq();中的student1哪来的,根本没有啊

------解决方案--------------------
看错了,b[0].age,age属性又不是static的,建议把student写成标准的bean形式,有set和get方法的
------解决方案--------------------
student1未初始化诶。。。
类成员变量默认初始化是null的。。
最好在main里初始化lianxi.student1 = new lianxi();
虽然没太看明白逻辑。。。但Exception in thread "main" java.lang.NullPointerException
表示在main函数中访问到了空引用
------解决方案--------------------
帮顶
  相关解决方案