Konstruktoraufruf bei Array

maxinquaye

Mitglied
Hallo, ich habe folgendes Problem:

Ich habe ein Array von einem Objekt, zu den Objekten gibt es einen Konstruktor der auch funktioniert. Versuche ich dann über das Array auf den Konstruktor zuzugreifen klappt das nicht.
Java:
public class Zahl 
{
// Datenelemente
int num;

  public Zahl(int x)
  {}
}

public static void main(String[] args) {
final int zmax=1000;
Zahl Zlist[]=new Zahl[zmax];

  for (int i = 2; i < 100; i++) {
  Zlist[i].Zahl(); ***
  }

}

Dieser *** Konstruktor-Aufruf funktioniert nicht, obwohl Zlist eigentlich vom Typ Zahl sein sollte, und für Zahl ist ja ein Konstruktor definiert. (Den Rest vom Porg habe ich weggelassen.)


Weiß jemand warum?????:L
 
Du hast ein Array von null en. Das Array musst du auch noch füllen. Sonst gibts eben eine NullPointerException.
zb
zahl[0] = new Zahl(1);
zahl[1] = ...
etc

EDIT:
upps..falsch geguckt... wär Zahl eine Methode gäbs ne NPE... Konstruktor eben mit new...
 
Java:
Zlist[i] = new Zahl(i);

Ja, genau so! Ich hatte das "i" in den Klammern vergessen.Total doofer Fehler, schließlich ist der Konstruktor ja auch Zahl (int x).

Ich glaube was mich verwirrt hat ist, dass als ich "Zlist." eingetippt hatte, in der Liste mit den verfügbaren Datenelementen und Methoden der Konstruktor nicht verfügbar war.

Allen auf jeden Fall ein großes Dankeschön!
 
Und was ist mit Zlist[0] und Zlist[1] ? (und den restlichen 900 Stellen im Array? )
Ich würde die Schleife evtl. nochmal anpassen! 😉
 
Achso, ja, das ist schon in Ordnung. Für meine Testläufe habe ich die Schleife nur bis 100 laufen lassen damit es schneller geht.


Für jede Zahl berechnet das Prog, die Teilermenge, die Summe aller Teiler, ob es prim ist oder nicht, ob es vollkommen ist oder nicht, und die befreundeten Zahlen (das wird alles für jede Instanz des Objektes Zahl einzeln berechnet).

Und beim letzteren bin ich hängengeblieben, weil ich dann auf einmal ein Array von diesen Objekten brauchte, die ihrerseits wiederum Arrays als Datenelemente enthalten.

Ich benutze eclipse und wenn man dann Zahl. eingibt öffnet sich eine Liste von möglichen Elementen und Methoden, und bei mit hatte das da - ich verstehe immer noch nicht - geklappt.

Wie dem auch sei. Danke!
 
Naja, gerade beim initialisieren der Arrayeinträge per Schleife sollte man doch darauf achten, dass man dies für alle tut. Sonst wird es evtl. schwer spätere NPEs zu vermeiden.
 

Neue Themen


Zurück
Oben