java之创建自定义类数组

原创 2013年12月05日 17:44:56

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

相关文章推荐

Java创建数组的几种方式

1、一维数组的声明方式: type[] arrayName; 或 type arrayName[];  附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组...

Java自定义类数组的创建和使用

简单介绍Java自定义类数组的创建和使用,具体代码如下: 第一步:创建类 // 顶点表结点 private class VertexNode { char vertex; ...

JAVA自定义数组工具类

从进入大学到现在准备出外面实习,可以说时间并不长,大学的时间特别容易h...

java定义数组的三种类型

三种定义数组的格式如下: int[] arr1=new int[10]; int[] arr2={1,2,3,6}; int[] arr3=new int[]{1,2,3,4,5,6,7,22...

java中的数组定义和使用

数组:是一组相关变量的集合 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组 数据的有点 不使用数组定义100个整形变量:int i1;...

关于JAVA类对象数组的创建

本人近期学习JAVA,从基础看起,

java中对象数组的创建与初始化

import java.io.*;class BankAccount{      private double balance;      public BankAccount(double open...
  • purerain
  • purerain
  • 2006年04月22日 17:37
  • 17876

java自定义栈(数组实现)

首先定义一个栈接口,用来描述栈的功能,提供出栈、入栈、获取栈顶元素、判断是否为空以及清空栈;...

Java自定义对象数组、集合排序

//实体类: package CategoryDp2; import java.util.Comparator; public class Cat implements Comp...

Java中9大内置Class实例和数组的Class实例

Java中9大内置Class实例和数组的Class实例   Java中一切皆对象,基本数据类型,没有类的全限定名,也没有getClass方法 问题:那么如何使用Class类来表示基本数据类型的C...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java之创建自定义类数组
举报原因:
原因补充:

(最多只允许输入30个字)