import javax.swing.JOptionPane;public class Testcourse { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Course course1=new Course("mathematics");
Course course2=new Course("statistics");
int i=0;while(i<2)
{String output=JOptionPane.showInputDialog("input students' name");
course1.addStudents(output);
course2.addStudents(output);
++i;
}

System.out.println("Number of students in course1:"+course1.getNumberOfStudents());
String[] students=course1.getStudents();
for(int ii=0;ii<course1.getNumberOfStudents();++ii)
{System.out.println(students[i]+",");
}
System.out.println("Number of students in course2:"+course2.getNumberOfStudents());
}}
Course类:
public class Course {
private String name;
private String[] students;
private int numberOfStudents;
Course()
{name="";
numberOfStudents=0;}
Course(String name)
{
this.name=name;

}
public String getName()
{
return name;
}
public String[] getStudents()
{
return students;
}
public int getNumberOfStudents()
{
return numberOfStudents;
}
public void addStudents(String students)
{
this.students[numberOfStudents]=students;
numberOfStudents++;

}}红色显示的是出问题的地方,但是编译器没说是什么问题,我也检查不出来~~~~

解决方案 »

  1.   

    Course里的String[] students没有初始化。一个array必须在定义的时候指定长度如果你不知道这个Array的长度,那就用List,Set,或者其他Collection
      

  2.   

    这段有问题:
    for(int ii=0;ii <course1.getNumberOfStudents();++ii) 
    {System.out.println(students[i]+","); 
    } 把i改为ii
      

  3.   

    private String[] students 没有初始化,
    students[numberOfStudents] 怎么来?会报数组越界的错误。
      

  4.   

    this.students[numberOfStudents]=students;private String[] students; 
    private int numberOfStudents; 
    没初始化