import java.util.*; //要使用Scanner类
public class testMain
{
public static void main(String[] arg)
{
Student[] s=new Student[3];//没有对各个元素初始化
public class testMain
{
public static void main(String[] arg)
{
Student[] s=new Student[3];//没有对各个元素初始化
init(s);
input(s);
show(s);
}
input(s);
show(s);
}
//初始化数组,如果没有初始化,则出现java.lang.NullPointerException问题
static void init(Student[] s)
{
for(int i=0;i<s.length;i++)
{ s[i]=new Student(); }
}
static void init(Student[] s)
{
for(int i=0;i<s.length;i++)
{ s[i]=new Student(); }
}
//信息输入
static void input(Student[] s)
{
for(int i=0;i<s.length;i++)
{
System.out.println("Input No."+i+" object:");
s[i].input();
}
}
static void input(Student[] s)
{
for(int i=0;i<s.length;i++)
{
System.out.println("Input No."+i+" object:");
s[i].input();
}
}
//信息输出
static void show(Student[] s)
{
for(int i=0;i<s.length;i++)
s[i].show();
}
}
static void show(Student[] s)
{
for(int i=0;i<s.length;i++)
s[i].show();
}
}
//**********************************
class Student
{
private static int counter;
private String name;
private int age;
private Scanner in;
{
private static int counter;
private String name;
private int age;
private Scanner in;
static {counter=0;}//静态变量初始化
public Student()
{
name="";
age=0;
in=new Scanner(System.in);
}
public void input()
{
name=in.next();
age=in.nextInt();
}
public void show()
{ counter++;
System.out.println("No."+counter+": "+this.name+","+this.age);
}
}
public Student()
{
name="";
age=0;
in=new Scanner(System.in);
}
public void input()
{
name=in.next();
age=in.nextInt();
}
public void show()
{ counter++;
System.out.println("No."+counter+": "+this.name+","+this.age);
}
}
//***********************************
//如果如下也不对
//下面是所有元素指向同一对象
Student t=new Student();
for(int i=0;i<s.length;i++)
{
s[i]=t;
}
本文介绍了一个简单的Java程序,用于管理学生的基本信息。该程序通过数组存储学生对象,并提供了信息输入、显示等功能。文章展示了如何避免空指针异常,并正确初始化对象。
1253

被折叠的 条评论
为什么被折叠?



