Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe folgendes Problem:
Ich muss mit einer Methode eine unbestimmte Anzahl an Objekten erstellen. Mit jedem Methodenaufruf erstellt man genau ein Objekt. Nach Durchlauf der Methode gelangt man zurück zur Main-Methode, wo man wählen kann, ob man erneut ein Objekt mit dieser Methode erstellen möchte oder ob man mit einer anderen Methode die erstellten Objekte auslesen möchte.
Java:
public static void main()
{
System.out.println("Bitte wählen Sie zwischen folgenden Optionen:");
System.out.println("Neuer Termin: 1");
System.out.println("Termine anzeigen: 2");
System.out.println("Anwendung beenden: 3");
int eingabe = Console.readInt();
switch(eingabe){
case 1: neuerTermin(); break;
//case 2: zeigeTermine(); break;
//case 3: break;
//default: System.out.println("Falsche Eingabe");
}
}
public static void neuerTermin(){
LocalDate date = null;
System.out.println("Bitte Datum eingeben: tt.mm.jjjj");
String dateEingabe = Console.readString();
DateTimeFormatter format = DateTimeFormatter.ofPattern("dd.MM.yyyy", Locale.GERMAN);
date = LocalDate.parse(dateEingabe, format);
System.out.println("Bitte Kommentar eingeben:");
String comment = Console.readString();
Termin neu = new Termin(date, comment);
main();
}
Java:
public class Termin
{
public LocalDate date;
public String comment;
public Termin(LocalDate date, String comment)
{
this.date = date;
this.comment = comment;
}
public String getComment()
{
return comment;
}
public LocalDate getDate()
{
return date;
}
}
Bis hier her scheint es noch zu funktionieren.
Wie kann ich jetzt auf die erstellten Objekte nachträglich zugreifen? Auf das gerade erstellte Objekt könnte ich ja einfach mit der Variable "neu" zugreifen. Aber ich will ja alle haben. Ich dachte da eine eine Klassenvariable als Array oder so ähnlich, allerdings bekomme ich das nicht hin.
public class Main{
private static List<Termin> termine = new ArrayList<>();
public static void main(){
[...]
}
public static void neuerTermin(){
[...]
Termin neu = new Termin(date, comment);
termine.add(neu);
}
}
Ich würde die empfehlen, in neuerTermin() nicht die main-Methode aufzurufen. Wenn die neuerTermin()-Methode komplett durchgelaufen ist, wird automatisch wieder an die Stelle des Aufrufs zurückgesprungen. Die Gefahr ist relativ groß, dass du dir hier versehentlich eine Endlosschleife einbaust.
Wie der/die Saheeda bereits gesagt hat sind Listen die Lösung. Du solltest mal nach ArrayList googlen und dich informieren. Listen sind nichts weiter als Arrays mit unbestimmter Größe und einer etwas anderen Syntax. Es gibt zum Beispiel keine "richtigen" zweidimensionalen Listen.