Neue Objekte zur Laufzeit erzeugen

Status
Nicht offen für weitere Antworten.

Ay Caramba

Mitglied
Hallo,

ich lerne gerade Java und bin nun bei einem Problem angelangt wo ich nicht weiter komme.
Ich würde gerne zur Laufzeit, wenn das Programm arbeitet, je nach Situation zusätzliche Objekte einer Klasse erstellen wollen

Code:
public class Hallo{

private String str=name;

public void doStuff(){
...
}

public void setName(String input){
name=input}

public String getName(){
return name;
}

}



public class Start{
public static void main (String[] args){

Hallo h=new Hallo();

...
h.setName("Test");
mache hier weiter...
if(h.getName().equals("Test");
MACHE hier neue Objekte.
....
und jetzt kommt mein Programm durch eine Eingabe oder Abfrage drauf, dass noch ein weiteres Objekt der Klasse Hallo
erzeugt werden soll. Ich habe schon 1x Hallo Objekt, nämlich "h", jetzt möchte ich aber weitere Objekte erzeugen. 

}
}

Wie würde ich denn nun diese weiteren Objekte, wo ich weder den Namen, noch die Anzahl kenne erzeugen?
 
G

Guest

Gast
Du kannst eine Collection verweden (eine Liste von Objekten) oder ein Map mit Namen als Schlüssel und Hallo-Objekt als Wert.
Code:
List<Hallo> list = new ArrayList<Hallo>(); // Liste für Hallo-Objekte
oder
Map<String, Hallo> map = new HashMap<String, Hallo>(); // Map mit Name-Wert Paaren
 
G

Guest

Gast
Klar, kein Problem.
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class ObjektListe
{
   static class Hallo
   {
      private String name;

      public Hallo(String name)
      {
         assert name != null: "Name darf nicht null sein!";
         this.name = name;
      }

      public String getName()
      {
         return name;
      }

      @Override
      public int hashCode()
      {
         return name.hashCode();
      }
      
      @Override
      public boolean equals(Object obj)
      {
         if( obj == null || !(obj instanceof Hallo))
         {
            return false;
         }
         return name.equals(((Hallo)obj).name); 
      }
   }

   public static void main(String[] args)
   {
      List<Hallo> nameList = new ArrayList<Hallo>();
      
      try
      {
         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
         for(;;) // eine Endlosschleife
         {
            System.out.print("Namen Eingeben (leere Eingabe für Ende): ");
            // Zeile einlesen
            String eingabe = in.readLine();
            
            // Nichts eingegeben, dann raus aus der Schleife
            if( eingabe.trim().length() == 0 )
            {
               break;
            }

            // Eine Instanz von Hello erzeugen 
            Hallo hallo = new Hallo(eingabe);
            
            // wenn ein Hallo mit gleichem Namen bereits existiert
            if( nameList.contains(hallo) )
            {
               // Eingabefehler melden
               System.out.println(String.format("Der Name '%s' wurde bereits eingegeben.", hallo.getName()));
               // und zum Schleifenanfang springen
               continue; 
            }
            
            // Das neue Hallo-Objekt in die Liste eintragen
            nameList.add(hallo);
         }
      }
      catch(IOException e)
      {
         e.printStackTrace();
      }
      
      System.out.println("\nFolgende Namen wurden eingegeben\n");
      for(Hallo hallo : nameList)
      {
         System.out.println(hallo.getName());
      }
   }
}
 
G

Guest

Gast
Ersetze noch
Code:
Hallo hallo = new Hallo(eingabe);
durch
Code:
Hallo hallo = new Hallo(eingabe.trim());
Es schneidet überflüssige Leerzeichen ab.
 

Ay Caramba

Mitglied
Danke dir für die Antwort.

Hätte mir eigentlich selber einfallen müssen, dass ich statt einem fixen Objektnamen einfach eine Variabel übergebe und diese einen String enthält. Wenn ich keine Benutzereingabe will, kann ich auch ohne Probleme einen String+array übergeben. i ist halt der counter der sich immer für jedes Objekt ändert.

Code:
for(Hallo hallo : nameList)
      {
         System.out.println(hallo.getName());
      }

Könntest du bitte vielleicht diese for Schleife kurz erklären? Ich habe bis jetzt nur mit for(initialisierung;Bedingung;Fortschaltung) gearbeitet und keine deine Syntax überhaupt nicht. Wissen=0; Ich lese da heraus:Gebe alle Objekte hallo vom Typ Hallo die sich in der Liste nameList befinden.


Code:
  @Override
      public int hashCode()
      {
         return name.hashCode();
      }

mit dem kann ich leider garnichts anfangen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
M Neue Objekte mit Hilfe von String Variable erschaffen Java Basics - Anfänger-Themen 2
K in Konstruktor neue Objekte einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
P OOP Automatisch neue Objekte erstellen Java Basics - Anfänger-Themen 14
S GridBagLayout neue Objekte hinzufügen Java Basics - Anfänger-Themen 3
L Mit Array neue Objekte erzeugen Java Basics - Anfänger-Themen 3
U werden da immer neue Objekte erzeugt? Java Basics - Anfänger-Themen 3
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
B Objekt an neue Stage übergeben? Java Basics - Anfänger-Themen 9
L Neue Klasse für TableView? Java Basics - Anfänger-Themen 17
tsom Erste Schritte itext Text als Block auf neue Seite Java Basics - Anfänger-Themen 0
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
S drawString() neue Zeile Java Basics - Anfänger-Themen 4
H Aus wav-datei lesen und in neue wav-datei speichern Java Basics - Anfänger-Themen 10
E Wenn i (for-Loop) bestimmter Wert, dann neue Zeile eines Buttons Java Basics - Anfänger-Themen 7
Hijo2006 Neue externe Klasse einbinden Java Basics - Anfänger-Themen 13
W Neue Klassenmethode implementieren.. Java Basics - Anfänger-Themen 6
U neue Methoden in JSP??? Java Basics - Anfänger-Themen 1
L0MiN Erste Schritte Neue Punkte zu einer Map hinzufügen und dauerhaft speichern? Java Basics - Anfänger-Themen 4
N wie schreibt man die neue for schleife? Java Basics - Anfänger-Themen 3
D Wie erstelle ich eine neue Hauptklasse mit eclipse? Java Basics - Anfänger-Themen 3
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
B Neue Bibliothek hinzufügen Java Basics - Anfänger-Themen 2
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
M FileWriter Neue Datei wenn aktuelle "zu groß" Java Basics - Anfänger-Themen 3
C auslesen bestimmter werte einer textdatei und anschl. hineinschreiben in eine neue txt-datei. Java Basics - Anfänger-Themen 2
R csv-Datei auslesen und ausgelesene Daten in neue csv-Datei speichern Java Basics - Anfänger-Themen 2
D Neue Array übernimmt Werte des alten nicht Java Basics - Anfänger-Themen 5
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
I Neue Klassenbibliothek erstellen Java Basics - Anfänger-Themen 8
K Iteration - Alte und neue For Schleife Java Basics - Anfänger-Themen 17
M Klassen Eine Klasse abrufen ohne eine neue Instanze auf zu rufen? Java Basics - Anfänger-Themen 8
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
S neue Methode schreiben Java Basics - Anfänger-Themen 14
E Variable neue Random Zahl zuweisen, wenn Button geklickt Java Basics - Anfänger-Themen 5
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
G Ausgabe nach 5 Zeichen in neue Zeile schreiben??? Java Basics - Anfänger-Themen 12
A Werte per Zufall aus einer Datei ziehen und in eine neue Datei schreiben Java Basics - Anfänger-Themen 9
F Variablen Übergabe von eingelesenen Variablen in neue Klasse Java Basics - Anfänger-Themen 15
U neue Java-Datei öffnen Java Basics - Anfänger-Themen 10
S Itext und eine neue Zeile einfügen Java Basics - Anfänger-Themen 2
Corben Input/Output FileOutputStream - neue Zeile mit write(10) Java Basics - Anfänger-Themen 6
S Datenströne - Text in eine Datei einlesen, umwandeln und in eine neue Datei schreiben Java Basics - Anfänger-Themen 6
F Neue Klasse mag nicht - nullPointerException Java Basics - Anfänger-Themen 6
L String suchen und ersetzten, ohne neue Datei Java Basics - Anfänger-Themen 4
X FileHandler: neue Datei erzeugen Java Basics - Anfänger-Themen 2
U Java neue Variable für jeden Schleifendurchgang Java Basics - Anfänger-Themen 11
K Neue Menge aus zwei Mengen konstruieren Java Basics - Anfänger-Themen 3
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
Hindi93 Neue Libs - wohin damit? Java Basics - Anfänger-Themen 7
G JUnit ist das neue main() Java Basics - Anfänger-Themen 16
M neue Zufallszahl in Schleife Java Basics - Anfänger-Themen 2
M java neue datei erstellen Java Basics - Anfänger-Themen 6
V Scanner Einlese aus Datei in neue Datei? Java Basics - Anfänger-Themen 8
Haubitze_Broese neue Klasse? Java Basics - Anfänger-Themen 6
F Neue Panelgröße nach Fenster maximieren Java Basics - Anfänger-Themen 5
S FileWriter - in neue Zeile schreiben!? Java Basics - Anfänger-Themen 19
L Neue Zeile JTable Java Basics - Anfänger-Themen 13
B Eine neue Klasse in anderen Projekten nutzen Java Basics - Anfänger-Themen 5
W neue Variablen in Schleife anlegen Java Basics - Anfänger-Themen 13
M Action als neue Klasse Java Basics - Anfänger-Themen 2
B Teile einer Image in neue Image kopieren Java Basics - Anfänger-Themen 4
E Neue zeile in string Java Basics - Anfänger-Themen 3
R Zeichnung entfernen und neue Zeichnen lassen Java Basics - Anfänger-Themen 20
R Neue GUI öffnen und die Alte schließen Java Basics - Anfänger-Themen 6
J ArrayList<Point> in eine neue ArrayList<Point> kopieren Java Basics - Anfänger-Themen 8
D Wie neue Instanz einer Klasse erstellen, von der ich nur eine andere Instanz kenne? Java Basics - Anfänger-Themen 13
S Stilfrage: Neue Klasse wenn es in einer Klasse zu viele Methoden gibt? Java Basics - Anfänger-Themen 14
G neue Instanz von ArrayList Java Basics - Anfänger-Themen 5
Zed Übergang von Kalenderwochen ins neue Jahr Java Basics - Anfänger-Themen 19
W JTextfield in neue Zeile einfügen Java Basics - Anfänger-Themen 5
JFeel-x Kann man in Eclipse neue Shortcuts erstellen? Java Basics - Anfänger-Themen 17
GambaJo Ab wann neue Klasse erzeugen? Java Basics - Anfänger-Themen 2
S Auf neue Dateien überprüfen Java Basics - Anfänger-Themen 2
Q java.util.loggging neue datei erstellen Java Basics - Anfänger-Themen 3
M Neue Pakete implementieren Java Basics - Anfänger-Themen 5
D neue Datei inkl. Ordner erstellen - in einem Rutsch? Java Basics - Anfänger-Themen 7
H ist eine "neue Session" für Mail möglich? Java Basics - Anfänger-Themen 3
G FileWriter -> neue Zeile Java Basics - Anfänger-Themen 13
S PrepareStatement, jede neue Zeile INT-Wert Java Basics - Anfänger-Themen 5
K Eine Neue Methode Schreiben . Java Basics - Anfänger-Themen 15
L ftp öffnen über neue DOS-Box Java Basics - Anfänger-Themen 8
M Neue Zeile? Java Basics - Anfänger-Themen 8
M JTable - DefaultTableModel - neue Row per Button-Klick Java Basics - Anfänger-Themen 2
S neue Aufgabe Java Basics - Anfänger-Themen 4
U Werte in neue Klasse speichern Java Basics - Anfänger-Themen 23
M Mit Java eine neue DB anlegen über XAMPP? Ist das möglich ? Java Basics - Anfänger-Themen 4
G Neue Look and Feels Java Basics - Anfänger-Themen 6
K Neue Werte für gleiche Array-Indexe Java Basics - Anfänger-Themen 16
Bernasconi Programmierstil / Wann eine neue Datei? Java Basics - Anfänger-Themen 5
S Datei auslesen und neue schreiben (keine Textdatei) Java Basics - Anfänger-Themen 2
U Neue Zeile im JLabel Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben