Создание объектов во время работы программы - PullRequest
0 голосов
/ 21 ноября 2018

Я хотел бы создать консольное приложение, в котором должна быть возможность создавать объекты во время работы программы.Мои первые попытки выглядели так:

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 голосов
/ 21 ноября 2018

Вам нужно использовать коллекцию для хранения своих учеников!Самым простым является массив:

Student[] students = new Student[100];

Это создаст массив для максимум 100 студентов.Одна из проблем заключается в том, что его нельзя изменить в размере, поэтому, если вы добавите более 100, нужно будет создать новые массивы и скопировать их, что будет непросто.

Вам следует использовать коллекцию, которая не имеет фиксированного размера:Подойдет любой из java.utils, например ArrayList, LinkedList, Stack, ...

LinkedList<Student> students = new LinkedList<Student>();
0 голосов
/ 21 ноября 2018

Вам нужно будет создать список массивов объектов 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;
    }
}

Дайте мне знать, если вам нужна дополнительная помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...