Objekt in Arrayliste

Hallo zusammen,

ich habe folgende Frage:

Ich habe 2 Klassen und für eine Klasse Mensch habe ich ein Objekt "person" in der anderen Klasse erstellt. Nun möchte ich, dass ich die Variablen von Mensch (vorname, nachname, alter) selbst mit einem Scanner fülle. Das Objekt von Mensch "person" soll dann in einer Arraylist gespeichert werden. Wie kann ich das am besten umsetzen? Brauche ich dafür ein Konstruktor?
12694
 
Entweder einen Konstruktur in den du alle Informationen reingibst, oder deine setter-Methoden einzeln aufrufen.
 
Java:
public class MenschTest {
    public final static int INPUT = 1;
    public final static int SHOW = 2;
    public final static int EXIT = 3;
    public final static String[] menu = { "Geben Sie eine Person ein", "Zeige alle Personen an", "Exit" };
    public final static String seperator = "----------------------------";

    public static void main(String[] args) {
        ArrayList<Mensch> list = new ArrayList<Mensch>();
        Scanner in = new Scanner(System.in);
        int selected = 0;
        do {
            selected = inputOption(in);
            switch (selected) {
            case INPUT:
                list.add(inputPerson(in));
                break;
            case SHOW:
                showList(list);
                break;
            case EXIT:
                System.out.println("\nAuf Wiedersehen!\n");
            }
        } while (selected != EXIT);

    }

    private static int inputInt(Scanner scanner, String label) {
        int value = 0;
        boolean ok = false;
        do {
            System.out.print(label + "\t");
            try {
                value = Integer.parseInt(scanner.next());
                ok = true;
            } catch (NumberFormatException e) {
                System.err.println("Bitte eine Zahl eingeben!");
            }
        } while (!ok);
        return value;
    }

    private static Mensch inputPerson(Scanner scanner) {
        System.out.println("Person eingeben:");
        String firstName = inputText(scanner, "Vorname:\t");
        String lastName = inputText(scanner, "Nachname:\t");
        int age = inputInt(scanner, "Alter:\t");
        return new Mensch(firstName, lastName, age);
    }

    private static String inputText(Scanner scanner, String label) {
        String str = null;
        boolean ok = false;
        do {
            System.out.print(label);
            str = scanner.next();
            if (str.length() > 0)
                ok = true;
        } while (!ok);
        return str;
    }

    private static int inputOption(Scanner in) {
        int val = 0;
        do {
            System.out.println("\n" + seperator + "\n\tAuswahl\n" + seperator);
            for (int i = 0; i < menu.length; i++)
                System.out.println((i + 1) + ". " + menu[i]);
            System.out.println(seperator);
            val = inputInt(in, "Auswahl [1-3]:");
            if (val >= 1 && val <= 4)
                return val;
            System.out.println("Auswahl ungueltig");
        } while (true);
    }

    private static void showList(ArrayList<Mensch> list) {
        System.out.println(seperator + "\n\tListe\n" + seperator);
        for (Mensch m : list) {
            System.out.println(m);
            System.out.println(seperator);
        }
    }
}
Java:
public class Mensch {
    private int age = 0;
    private String firstName = null;
    private String lastName = null;

    public Mensch(String firstName, String lastName, int age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Override
    public String toString() {
        return lastName + " " + firstName + "\t> " + age;
    }

}
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben