Liebe Forummitglieder,
ich implementiere ein Telefonbuch. Ich habe in der main ein Menü mit Switch Case erstellt. Im ersten Case fülle ich eine Arraylist (mit Kontaktdaten) in der zweiten Case möchte ich sie ausgeben lassen. Leider ist aber der Inhalt der Arraylist nach dem Aufruf des zweiten Case leer. Außerdem lande ich bei Auswahl des Case 2 wieder im Hauptmenü und komme nicht rein ins case.
Ich verstehe nicht warum der Inhalt der Arraylist verschwindet und ich in meiner Endversion(vorher kam ich in den Case mal rein) nicht mehr in den Case reinkomme. Könnt ihr mir bitte einen Hinweis geben, wo mein Denkfehler ist.
VG Kenan
Ich habe 3 Klassen:
Klasse Person: Hier sind die Daten für einen Eintrag deklariert.
Klasse Telefonbuch: Hier sind die Methoden zum hinzufügen und ausgeben der Einträge
Klasse TestTelefonbuch: Hier ist mein Menü mit dem Switch Case
ich implementiere ein Telefonbuch. Ich habe in der main ein Menü mit Switch Case erstellt. Im ersten Case fülle ich eine Arraylist (mit Kontaktdaten) in der zweiten Case möchte ich sie ausgeben lassen. Leider ist aber der Inhalt der Arraylist nach dem Aufruf des zweiten Case leer. Außerdem lande ich bei Auswahl des Case 2 wieder im Hauptmenü und komme nicht rein ins case.
Ich verstehe nicht warum der Inhalt der Arraylist verschwindet und ich in meiner Endversion(vorher kam ich in den Case mal rein) nicht mehr in den Case reinkomme. Könnt ihr mir bitte einen Hinweis geben, wo mein Denkfehler ist.
VG Kenan
Ich habe 3 Klassen:
Klasse Person: Hier sind die Daten für einen Eintrag deklariert.
Code:
public class Person {
String vorname, nachname, telefonnummer;
public Person() {
System.out.println("Warnung");
}
public Person(String vorname, String nachname, String telefonnummer) {
this.vorname = vorname;
this.nachname = nachname;
this.telefonnummer = telefonnummer;
}
public String toString() {
return "vorname: " + vorname + " nachname: " + nachname + " telefonnummer: " + telefonnummer;
}
}
Klasse Telefonbuch: Hier sind die Methoden zum hinzufügen und ausgeben der Einträge
Code:
import java.util.ArrayList;
import java.util.Scanner;
public class Telefonbuch {
// Standard Konstruktor
public Telefonbuch() {
super();
System.out.println("Warnung! ");
}
// Konstruktor mit formalen Parametern
public Telefonbuch(ArrayList<Person> liste) {
super();
this.liste = liste;
}
// Erzeuge ArrayList-Objekt
private ArrayList<Person> liste = new ArrayList<>();
// Erzeuge Scanner-Objekt
Scanner in = new Scanner(System.in);
// Getter
public ArrayList<Person> getListe() {
return liste;
}
// Setter
public void setListe(ArrayList<Person> liste) {
this.liste = liste;
}
// Methode: Fügt neuen Kontakt hinzu mit den eingegebenen Daten wie Vorname,
// Nachname und Telefonnummer
public void kontaktHinzufuegen() {
System.out.println("Bitte geben Sie den Vornamen ein! ");
String vorname = in.next();
System.out.println("Bitte geben Sie den Nachnamen ein! ");
String nachname = in.next();
System.out.println("Bitte geben Sie die Telefonnummer ein! ");
String telefonnummer = in.next();
// new Person bedeutet: ich erzeuge ein neues Objekt vom Datentyp Person
liste.add(new Person(vorname, nachname, telefonnummer));
System.out.println("Folgender Eintrag wurde gespeichert: " + vorname + " " + nachname + " " + telefonnummer);
}
// Gibt alle Elemente von der Liste aus
public void arrayListAusgeben() {
for (Person elem : liste) {
System.out.println(elem);
}
}
}
Klasse TestTelefonbuch: Hier ist mein Menü mit dem Switch Case
Code:
import java.util.Scanner;
import java.util.ArrayList;
public class TestTelefonbuch {
public static void main(String[] args) {
boolean helper = false;
while (!helper) { // while Schleife für Menüfürung.
Scanner in = new Scanner(System.in); // Erzeuge Scanner-Objekt
Telefonbuch buch = new Telefonbuch();
System.out.println("Bitte wählen Sie aus!\n");
System.out.println("1. Neuen Kontakt hinzufügen");
System.out.println("2. Telefonbuch ausgeben!");
System.out.println("3. Kontakt entfernen");
System.out.println("4. Beende das Programm");
// Scanner erwartet Eingabe und wird die Variable "menu" mit dem eingegebenen
// initialiesieren.
int menu = in.nextInt();
// Fallauswahl für das Menu: Je nach Auswahl des Users erfolgen die jeweiligen
// case's
switch (menu) {
case 1:
buch.kontaktHinzufuegen();
break;
case 2:
buch.arrayListAusgeben();
break;
case 3:
System.out.println("case drei noch nicht implementiert. hier eine löschen funktion implementieren");
break;
case 4: // Bei Auswahl 4, wird das Program beendet.
helper = true;
System.out.println("Das Program wurde beendet. ");
break;
default:
// Falls der User eine Zahl außerhalb der Spanne 1-8 eingibt, wird eine
// Fehlermeldung ausgegeben.
System.out.println("Falsche Eingabe! Zahlen nur im Bereich 1-8 möglich");
break;
}
}
}
}