【发布时间】:2014-12-05 01:35:58
【问题描述】:
学生演示:
public class studentDemo {
public static void main(String[] args) throws IOException{
int runit = 0;
StudentMenu run = new StudentMenu();
while (runit != 1) {
run.menu();
}
}
}
学生菜单:
public class StudentMenu {
public Student func = new Student();
List<Student> studentList = new ArrayList<Student>();
String input;
String input2;
String input3;
public void menu(){
System.out.println("Choose an option: ");
System.out.println("1) Add a student ");
System.out.println("2) Display student list ");
System.out.println("3) Exit ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
input = br.readLine();
int choice = Integer.parseInt(input);
System.out.println("Choice: " + choice);
if(choice == 1){
System.out.println("First name: ");
input = br.readLine();
System.out.println("Last name: ");
input2 = br.readLine();
System.out.println("Number of classes to add for student: ");
input3 = br.readLine();
int numberOfClasses = Integer.parseInt(input3);
studentList.add(new Student(input, input2, numberOfClasses));
func.createClassList(numberOfClasses);
}
if(choice == 2){
}
if(choice == 3){
System.exit(0);
}
}
catch (IOException ioe){
System.out.println("An unexpected error occured.");
}
}
}
学生:
public class Student{
private String firstName;
private String lastName;
private int classes;
//Create array for classes
private String[] classesList = new String[classes];
public Student(){
firstName = "no name";
lastName = "no name";
classes = 0;
}
//overloaded constructor
public Student(String theFirstName, String theLastName, int theClasses){
firstName = theFirstName;
lastName = theLastName;
classes = theClasses;
System.out.println("Number of Classes: " + classes);
}
//Populating array
public void createClassList(int classes){
//Call array method
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
for(int i = 0; i < classes; i++){
System.out.println("Number of Classes: " + classes);
System.out.println("Enter class " + i + ":");
String input = br.readLine();
classesList[i] = input;
}
}
catch (IOException ioe) {
System.out.println("An unexpected error occured.");
}
}
//Getters
public String getFirstName(){ return firstName; }
public String getLasName(){ return lastName; }
public int getNumberOfClasses(){ return classes; }
//Setters
public void setFirstName(String newFirstName){
firstName = newFirstName;
}
public void setLastName(String newLastName){
firstName = newLastName;
}
public void setNumberOfClasses(int newNumberOfClasses){
classes = newNumberOfClasses;
}
}
抱歉,如果我粘贴的有点不正确。
我正在尝试创建一个程序来构建学生列表,其中包含他们的名字、姓氏和班级列表。但是,我进入第一堂课后一直遇到这个错误:
ABRT problem creation: 'success'
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Student.createClassList(Student.java:37)
at StudentMenu.menu(StudentMenu.java:37)
at studentDemo.main(studentDemo.java:10)
这是错误之前的输出:
Choose an option:
1) Add a student
2) Display student list
3) Exit
1
Choice: 1
First name:
t
Last name:
s
Number of classes to add for student:
3
Enter class 0:
eng
在输入 eng 后立即出现错误。
据我所知,不应该有 OutOfBoundsException,因为 3 是索引的限制,我只输入了一个类。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
您可以尝试正确粘贴代码吗?它会帮助我们帮助您。
标签: java arrays methods arraylist