# Objekt in einem Array erzeugen



## andkul (26. Sep 2008)

Hallo,

ich versuche grad folgendes:

```
Object ob1 = null;
		Object ob2 = null;
		Object ob3 = null;

		Object[] arr = new Object[]{ob1, ob2, ob3};

		for(int i = 0; i < arr.length; i++)
		{
			arr[i] = new Object();
		}
```

Da werden mir die Objekte im Array leider nicht initialisiert.
Warum? geht das generell nicht oder hab ich da nen Fehler drinne?

Wie könnte man das anders machen?
Ihr habt bestimmt ne Idee


----------



## SlaterB (26. Sep 2008)

was ist deine Frage?
nach der Schleife sollten doch Objekte im Array drin sein oder nicht?

durch das Füllen des Arrays kannst du aber unmöglich lokale Variablen ändern, falls du das vorhast


----------



## andkul (26. Sep 2008)

Also Objekte sind schon drin, aber die sind alle null.

Ich will einfach nur die Objekte im Array, die vor der Schleife ja alle noch null sind, initialisieren, sonst nix.
Ich geb zwar jedem Konstruktor einen anderen Parameter mit ( aus einem 2. Array, welches die String-Parameter enthält), aber das dürfte ja kein Problem sein, oder?

Meine Frage lautet, ob ich hier einen Fehler gemacht hab, denn so funktionierts bei mir leider nicht.

Und meinen 2. Frage lautet, obs vielleicht eine andere Möglichkeit gibt, nen haufen Objekte, die alle null sind und sich in einem Array befinden, in einer schleife oder so zu initialisieren?


----------



## SlaterB (26. Sep 2008)

arr[0] und obj1 haben nichts miteinander zu tun,
in Zeile 6 kopierst du mal den Wert von obj1 nach arr[0],
aber ansonsten sind die nun nicht auf magische Weise verbunden, sowas gibts in Java nicht,

wie wärs mit 


      Object[] arr = new Object[3]; 

      for(int i = 0; i < arr.length; i++) 
      { 
         arr_ = new Object(); 
      } 

      Object ob1 = arr[0]; 
      Object ob2 = arr[1]; 
      Object ob3 = arr[2]; 


auch hier wird nur kopiert, aber danach zeigen ob1 und arr[0] auf dassselbe Objekt != null, darauf kommts wohl erstmal an?_


----------



## Schandro (26. Sep 2008)

aaalso, da is bei dir leider ein generelles Verständnisproblem:

```
Object ob1 = null;
      Object ob2 = null;
      Object ob3 = null;

      Object[] arr = new Object[]{ob1, ob2, ob3};
```

du machst 3 REFERENZEN vom typ Object und weist ihnen jeweils null zu. Danach steckst du das, auf was die Referenzen zeigen, in das Array. Du tust NICHT die referenzen ob1, ob2 und ob3 ANSICH in das Array. Du tust nur den WERT von den 3 Referenzen in das Array, d.h. 3 mal null.
Wenn du jetzt 
arr_ = new Object();
schreibst, ändert das nix an den Referenzen ob1, ob2 oder ob3! Das hat mit denen schließlich gar nix mehr zu tun_


----------



## andkul (26. Sep 2008)

Ok, das löst zwar mein Problem nicht, aber es beantwortet meine Frage: es geht nicht.
Jetz muss ich die ganzen Objekte halt einzeln initialisieren.
Leider hilft mir dein Konstrukt auch nicht weiter, aber trotzdem vielen Dank


----------



## andkul (26. Sep 2008)

OK, auch danke an schandro. Leuchtet mir jetzt ein.


----------

