我想使用for循环在程序中创建一些对象。从键盘接受对象的参数。我的问题是如何在for循环中创建不同的对象。这就是我所拥有的。
import java.io.*;
import java.util.*;
public class TimeToGraduate {
public static void main(String[] args){
class Course{
Course (String name, String sem, int numOfPre){
this.name = name;
this.sem = sem;
this.numOfPre = numOfPre;
}
String name;
String sem;
int numOfPre;
}
Scanner scanner = new Scanner(System.in);
System.out.print("Input two integers here: ");
String totalCourse = scanner.nextLine();
String[] numOfCourse = totalCourse.split(" ");//[0] num of total course [1] max num per semester
for(int i = 0;i < Integer.parseInt(numOfCourse[0]); i++){
System.out.print("Please input course info here: ");
String courseInfo = scanner.nextLine();
String[] infoOfCourse = courseInfo.split(" ");
String courseName = infoOfCourse[0];
String courseSem = infoOfCourse[1];
int courseNumOfPre = Integer.parseInt(infoOfCourse[2]);
Course course = new Course(courseName,courseSem,courseNumOfPre);
//How to create different objects?
}
scanner.close();
}
}
答案 0 :(得分:1)
您可以将正在创建的对象保存在数组中。
在for循环之前:
// create an empty array with the size of the total courses
int numOfCourses = Integer.parseInt(numOfCourse[0]);
Course courses[] = new Course[numOfCourses];
循环内部:
courses[i] = new Course(courseName, courseSem, courseNumOfPre);
答案 1 :(得分:0)
answer by Securo是正确的。但是使用Collection
而不是数组,它更灵活,更强大。如果要按创建顺序保留对象,请使用List
接口,并使用ArrayList
作为实现。
在循环开始之前,定义一个空列表。
new AlertDialog.Builder(context)
.setMessage("My message")
.setPositiveButton("Positive Button", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
})
.setNegativeButton("Negative Button", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
})
.setNeutralButton("Neutral Button", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
})
.show();
如果您知道课程数量,请将该数字作为List<Course> courses = new ArrayList<>();
的初始大小。如果不需要调整ArrayList的大小,可以帮助提高性能和内存使用率。
ArrayList
在循环中,实例化对象并添加到List。
List<Course> courses = new ArrayList<>( numberOfCourses );