Frage zu new
- 
					
					
					
					
 Hi ! Sorry, hab mich auch noch vertippt  Richtig sollte die Zeile so lauten (jetzt mal nicht aus dem Kontext rausgerissen...) public void p (X[] x) { //blabla, wir arbeiten mit x x = new X [x.length]; //<-- so, was macht das ? }Danke schonmal im voraus für eure Bemühungen  
 
- 
					
					
					
					
 Das ist total unschön. Er erzeugt ein neues Array vom Typ X mit der selben Größe des übergebenen Arrays (X[] x). 
 
- 
					
					
					
					
 Hab ich doch recht gehabt !!! Heute morgen ham wir darüber diskutiert... Und jedesmal wird der Constructor nochmal aufgerufen, richtig ? 
 
- 
					
					
					
					
 Nein, es wird lediglich das Array angelegt. Jedes Array-Element muss dann explizit den Konstruktor via new aufrufen. Also x[0] = new X;[ Dieser Beitrag wurde am 16.01.2003 um 16:02 Uhr von CengizS editiert. ] 
 
- 
					
					
					
					
 Mh. 
 Aber das neu angelegte Array ist noch mit den alten Werten "gefüllt" ? Ich kann damit direkt weiterarbeiten, oder ?
 
- 
					
					
					
					
 Hmmm das sollte nicht sein. Du holst Dir ja im Prinzip eine neue Startadresse. 
 
- 
					
					
					
					
 Original erstellt von Headhunter: 
 **
 Aber das neu angelegte Array ist noch mit den alten Werten "gefüllt" ? Ich kann damit direkt weiterarbeiten, oder ?**Ein neues Array wird erstmal automatisch von vorne bis hinten mit "null" gefüllt. ...bzw. 0, wenn die Elemente primitive Datentypen sind. 
 
- 
					
					
					
					
 Also hab ich ein Objekt der Klasse, *ohne* ihren Konstruktor aufgerufen zu haben ?? Das ist mir aber suspekt  
 
- 
					
					
					
					
 Nein, du hast nur ein Array das Objekte vom Typ X halten kann. Mehr nicht... 
 
- 
					
					
					
					
 Danke, jetzt hab ichs verstanden  
 
- 
					
					
					
					
 Ein Beispiel (anlehnend an Deinen Entwurf) 
 [java]public class X
 {
 public X(String name) {
 System.out.println("X() called with Name '"+name+"'");
 }public void p (X[] x) 
 {
 x = new X [x.length]; //<-- so, was macht das ?
 for (int i=0; i<x.length; ++i) {
 System.out.println(x[i]);
 }
 }
 }[/code] Das ist also die Klasse mit der ominösen Methode p(X[] x) und nun das Startprogramm ... [java]public class Y
 {
 public static void main (String args[]) {
 X myX = new X("Main-Object");
 X[] xArray = new X[5];
 xArray[0] = new X("temp_1");
 xArray[1] = new X("temp_2");
 xArray[2] = new X("temp_3");
 xArray[3] = new X("temp_4");
 xArray[4] = new X("temp_5");
 myX.p(xArray);
 }
 }[/code]Wenn Du es ausführen lässt wirst Du folgenden Output bekommen:X() called with Name 'Main-Object' X() called with Name 'temp_1' X() called with Name 'temp_2' X() called with Name 'temp_3' X() called with Name 'temp_4' X() called with Name 'temp_5' null null null null null[ Dieser Beitrag wurde am 16.01.2003 um 17:05 Uhr von CengizS editiert. ] 
 
- 
					
					
					
					
 jo, soll beides ein grosses X sein!!:)