我想创建一个控制台应用程序,该程序运行时应该可以在其中创建对象。我的第一次尝试是这样的:
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
printMenu();
String input = br.readLine();
switch (input) {
case "0":
System.exit(0);
case "1":
createStudent();
(...)
createStudent():
String firstName;
String lastName;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String input = br.readLine();
System.out.println("whats your Lastname?");
input = br.readLine();
lastName = input;
System.out.println("and your Firstname?");
input = br.readLine();
firstName = input;
// Create Object with given attributes
Student unique = new Student(firstName,lastName);
整个应用程序基于用户输入。我需要能够使用不同的名称创建多个学生(在我的代码中,对象的名称将始终为“唯一”。
答案 0 :(得分:1)
您需要使用收藏集来存储学生!最简单的是一个数组:
Student[] students = new Student[100];
这将创建一个数组,最多可容纳100名学生。这样做的一个问题是无法调整大小,因此如果添加的大小超过100,则需要创建并复制新的数组,这并不容易。
您应该使用一个没有固定大小的集合:java.utils中的任何一个都可以,例如ArrayList,LinkedList,Stack,...
LinkedList<Student> students = new LinkedList<Student>();
答案 1 :(得分:0)
您将需要创建一个Student对象的数组列表。您可以向数组列表添加无限数量的Student对象。
我玩了一下,然后想出了如何向ArrayList添加对象。这是如何执行此操作的示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Students {
ArrayList<Student> unique = new ArrayList<Student>();
public void createStudent() throws IOException {
String firstName = "";
String lastName = "";
Student temp;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("whats your Lastname?");
lastName = br.readLine();
System.out.println("and your Firstname?");
firstName = br.readLine();
// Create Object with given attributes
temp = new Student(firstName, lastName);
unique.add(temp);
}
public String getFirstName(int index) {
return unique.get(index).firstName;
}
public String getLastName(int index) {
return unique.get(index).lastName;
}
public static void main(String[] args) throws IOException {
Students students = new Students();
students.createStudent();
System.out.println(students.getFirstName(0));
System.out.println(students.getLastName(0));
}
}
class Student {
String firstName = "";
String lastName = "";
public Student(String fn, String ln) {
firstName = fn;
lastName = ln;
}
}
如果您需要更多帮助,请告诉我。