创建Student数组和Student对象,键盘录入
Student类标准Javabean
测试类,注意先创建Student[ ]学生数组,再创建学生对象,对学生对象进行成员变量赋值,再把学生引用赋值给数组元素
不可以直接对学生数组进行赋值,会显示空指针异常
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package review06; /* 编程: 设计一个学生类,包含基本信息:name,age,class_info,做好封装(私有变量,空参构造,公有get/set方法), 测试类中,从键盘上录入5个学生的信息,使用数组保存,然后再遍历输出各个学生的信息 */ public class Student { //成员变量 private String name; private int age; private String class_info; //构造方法 Student() { // TODO Auto-generated constructor stub } //setXxx getXxx public void setName(String name){ this.name = name; } public String getName(){ return name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getClass_info() { return class_info; } public void setClass_info(String class_info) { this.class_info = class_info; } public void show(){ System.out.println("姓名"+name+" 年龄"+age+" 班级"+class_info); } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package review06; import java.util.Scanner; /* 编程: 设计一个学生类,包含基本信息:name,age,class_info,做好封装(私有变量,空参构造,公有get/set方法), 测试类中,从键盘上录入5个学生的信息,使用数组保存,然后再遍历输出各个学生的信息 */ //测试类 public class StudentTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //创建学生数组 Student[] stArray = new Student[2]; for (int i = 0; i < stArray.length; i++) { //创建学生对象 Student st = new Student(); System.out.println("请输入第"+(i+1)+"个学生的姓名"); st.setName(sc.next()) ; System.out.println("请输入第"+(i+1)+"个学生的年龄"); //不能直接调用数组,因为只是开辟了两个学生数组空间,里面没有具体学生对象 /// stArray[i].setAge(sc.nextInt());//空指针异常 st.setAge(sc.nextInt()); System.out.println("请输入第"+(i+1)+"个学生的班级"); //stArray[i].setClass_info(sc.next()); st.setClass_info(sc.next()); //把学生引用实例赋值给数组 stArray[i] = st; } //遍历输出 for (int i = 0; i < stArray.length; i++) { System.out.println("第"+(i+1)+"个学生的信息"); stArray[i].show(); } } }