程序运行时创建对象

时间:2018-11-21 20:10:44

标签: java object input

我想创建一个控制台应用程序,该程序运行时应该可以在其中创建对象。我的第一次尝试是这样的:

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);

整个应用程序基于用户输入。我需要能够使用不同的名称创建多个学生(在我的代码中,对象的名称将始终为“唯一”。

2 个答案:

答案 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;
    }
}

如果您需要更多帮助,请告诉我。