关闭

java之创建自定义类数组

标签: java异常自定义数组空指针异常
3578人阅读 评论(0) 收藏 举报
分类:

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();
	}
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:109510次
    • 积分:1735
    • 等级:
    • 排名:千里之外
    • 原创:66篇
    • 转载:17篇
    • 译文:0篇
    • 评论:12条
    文章分类
    最新评论