Java类数组

java之创建自定义类数组
2013-12-06        个评论    来源:每天进步一点点 时间会让你成为巨人   
收藏     我要投稿

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();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值