1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Dynamische Objekt Anzahl in java konstruieren.

Discussion in 'Programmieren' started by frOst2006, Feb 8, 2007.

Thread Status:
Not open for further replies.
  1. frOst2006

    frOst2006 Byte

    Hallo leute, ich hab mal eine frage und zwar wollte ich folgendes wissen:
    Ist es möglich, wenn ich ein Objekt mit einem Konstruktor in java erstelle, das ich laufend weitere erstelle? Normalerweise kann ich ja nur folgendes schreiben:
    Programmiere in Java.

    public static void main(String[] args){
    Objekt objekt1 = new Objekt();
    Objekt objekt2 = new Objekt();
    Objekt objekt3 = new Objekt();}

    kann ich, anstelle die objekte durch zu nummerieren, schreiben, das ich wirklich nur so viele erzeuge, wie ich brauche? Also im klartext, kann, wenn ich z.b.: das Programm mit einer Zahl als eingabe aufrufe, soviele Objekte erstellen lassen, wie die zahl? Also müsste sich der name des zu erstellenden Objekts dynamisch im Programm verändern oder liege ich da falsch? läuft das dann irgendwie über überladen des Konstruktors oder geht das auch einfacher, damit ich dann bis zu n objekte erstellen kann.

    Ich hoffe mal ich hab es nicht zu kompliziert geschrieben. Also wenn jemand eine idee hat und bitte so einfach wie möglich.
    Danke schonmal im vorraus.
     
  2. enschman

    enschman Megabyte

    Hi,

    ich kann nur sagen, wie ichs über VB.net lösen würde:
    Ein Array oder eine Collection (List of) mit den Objekten erstellen und über ´ne Schleife füllen...

    mfg Tenschman
     
  3. L-ectron-X

    L-ectron-X Guest

    In Java kann eine Array-Lösung so aussehen:
    Code:
    public class ArrayTest {
       private Object[] obs;
    
       public ArrayTest(int amount) {
          obs = new Object[amount];
          
          for(int i = 0; i < amount; i++) {
             obs[i] = new Object();
          }
          
          System.out.println("Es wurden "+amount+" Objekte erzeugt.");
       }
    
       public static void main(String[] args) {
          if(args.length != 1) {
             System.out.println("Bei Programmstart wird genau ein Argument erwartet.");
             System.out.println("Beispiel Programmstart:\njava ArrayTest 5");
             System.exit(0);
          }
          
          int i = 0;
          try {
             i = Integer.parseInt(args[0]);
          }
          catch(NumberFormatException e) {
             System.out.println("Das Argument muss eine ganze Zahl sein!");
          }
          
          new ArrayTest(i);
       }
    }

    Eine mögliche Lösung mit einer häufig verwendeten Datenstruktur aus dem Java Collection Framework kann so aussehen:
    Code:
    import java.util.*;
    
    public class CollectionTest {
       private ArrayList obs;
    
       public ArrayTest(int amount) {
          obs = new ArrayList();
          
          for(int i = 0; i < amount; i++) {
             obs.add(new Object());
          }
          
          System.out.println("Es wurden "+amount+" Objekte erzeugt.");
       }
    
       public static void main(String[] args) {
          if(args.length != 1) {
             System.out.println("Bei Programmstart wird genau ein Argument erwartet.");
             System.out.println("Beispiel Programmstart:\njava CollectionTest 5");
             System.exit(0);
          }
          
          int i = 0;
          try {
             i = Integer.parseInt(args[0]);
          }
          catch(NumberFormatException e) {
             System.out.println("Das Argument muss eine ganze Zahl sein!");
          }
          
          new CollectionTest(i);
       }
    }
    Ich habe hier mal eine nicht synchronisierte Liste benutzt.
     
Thread Status:
Not open for further replies.

Share This Page