Klassen Objekte während der Laufzeit dynamisch anlegen

Bana Ne

Mitglied
Hey,

ich möchte gerne ein Objekt für die Klasse "fach" anlegen, während das Programm läuft und der Benutzer soll eingeben können, wie das Objekt heisst. Also so in der Art:

Java:
System.out.println("Welches Fach haben Sie?");
String fachWahl = br.readLine();
fach fachWahl = new fach(fachWahl);

Wobei das 2. fachWahl über den Konstruktor in eine Variable geschrieben wird. Das klappt auch gut (hab ich mit einem Statischen Objektnamen getestet). Aber das Objekt soll eben auch genauso heissen.
 
Das wird nicht gehen und wozu denn auch?

Dein Programm interessiert nicht, wie ein Objekt heißt. Du solltest dir einfach in der Klasse Fach (Klassen immer Groß!) eine Methode getFachwahl() schreiben, die dir dann die eindeutige Identifizierung geben kann.
 
ok nehmen wir mal an jemand möchte ein neues Fach anlegen. Mathe z. B.
ist Mathe dann nicht ein Objekt von Fach? Das muss doch angelegt werden oder nicht?
 
Java:
System.out.println("Welches Fach haben Sie?");
String fachWahl = br.readLine();
Fach derNameHierIstEgal = new Fach(fachWahl);
 
Aber wie kann ich denn dann auf das Objekt mit der Bezeichnung Mathe zugreifen um z.B. eine andere Variable zu Ändern. Z.B. möchte ich Mathe zu einem Hauptfach machen.

normalerweise geht das ja so Objektname.setHauptfach(true);

Nun habe ich als Objektname "irgendwas" und das für 4 Fächer
2 dieser 4 Fächer möchte ich zu Hauptfächern machen.

Wie kann ich auf diese 2 (Mathe und Deutsch) Zugreifen?

Achtung Mathe und Deutsch sind nur die Bezeichnungen nicht die Namen.
 
Du musst dir ein Array aus Fächern bauen und gehst das Schritt für Schritt durch und schaust, ob du am richtigen angekommen bist und änderst dann dort was ab.
 
Die Klasse Fach sollte soetwas zur Verfügung stellen:

Java:
if (irgendwas.getName().equals("Mathe")) {
  irgendwas.setHauptfach();
}
 

Zurück
Oben