java之创建自定义类数组

来源:互联网 发布:软件项目启动通知单 编辑:程序博客网 时间:2024/06/10 19:15

java创建自定义类数组方法:

Student []stu = new Student[3];

for(int i = 0; i < 3; i ++)
{
stu[i] = new Student();

否则会提示空指针异常

eg:

package project;import java.io.*;import java.util.Scanner;class Student{private int id;private String name;private int score;public void setId(int id){this.id = id;}public int getId(){return this.id;}public void setName(String name){this.name = name;}public String getName(){return this.name;}public void setScore(int score){this.score = score;}public int getScore(){return this.score;}}public class project2 {File file = new File("E:/data.txt");FileWriter filewrite = null;BufferedWriter write = null;FileReader fileread = null;BufferedReader read = null;Student []stu = new Student[3];public void put(){try {filewrite = new FileWriter(file);} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}write = new BufferedWriter(filewrite);for(int i = 0; i < 3; i ++){System.out.println("请输入第" + (i + 1) + "个学生的ID,姓名,成绩:");Scanner in = new Scanner(System.in);try {String str = in.nextLine();String data[] = str.split(" ");for(int j = 0; j < 3; j++){write.write(data[j]);write.newLine();}} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}try {write.close();filewrite.close();} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}public void get(){int sum = 0;double ave;try {fileread = new FileReader(file);} catch (FileNotFoundException e) {// TODO 自动生成的 catch 块e.printStackTrace();}read = new BufferedReader(fileread);for(int i = 0; i < 3; i ++){stu[i] = new Student();try {stu[i].setId(Integer.parseInt(read.readLine()));stu[i].setName(read.readLine());stu[i].setScore(Integer.parseInt(read.readLine()));} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}for(int i = 0; i < 3; i ++){sum  += stu[i].getScore();}ave = sum * 1.0/3;System.out.println("学生的平均成绩为:" + ave);try {read.close();fileread.close();} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}public static void main (String []args){project2 pro = new project2();pro.put();pro.get();}}