Immer diese NoPointerExceptions

Ich habe bei mir jetzt mit class neue Datentypen angelegt. Das sieht in etwa so aus:

public class MAUS
{
String Variable1;
}

public class KATZE
{
String Variable2;
public static MAUS T1[] = new MAUS[30];
}

public class HUND
{
String Variable3;
public static KATZE T2[] = new KATZE[30]
}

//Und die Zuweisung :
public static HUND VAR = new HUND();

Das sollen jetzt also ineinander verschachtelte Datentypen sein.
HUND enthält 30 x KATZE und jede KATZE enthält 30 x MAUS

Wenn ich jetzt auf Variable3 mit HUND.Variable3 zugeife und dem Werte zuweise, gibt das keine Probleme!
Aber bei Zugriffen wie

HUND.KATZE[1].Variable2 oder
HUND.KATZE[1].MAUS[1].Variable1

gibt es bei der Ausführung des Programmes „NoPointerExceptions“ und das selbst, wenn ich mit einer Schleife versuche diesen Variablen Werte zuzuweisen. (Hab ich vielleicht die Arrays falsch deklariert?)
Kann mir bitte jemand helfen?

HUND.KATZE[1].Variable2 oder
HUND.KATZE[1].MAUS[1].Variable1

Aus deinen Angaben raus denke ich es müsste heissen:

HUND.T2[1].Variable2
HUND.T2[1].T1[1].Variable1

MfG Bruno Haller

Hab mich verschrieben, sorry. Hier nochmal!
Ich habe bei mir jetzt mit class neue Datentypen angelegt. Das
sieht in etwa so aus:

public class MAUS
{
String Variable1;
}

public class KATZE
{
String Variable2;
public static MAUS T1[] = new MAUS[30];
}

public class HUND
{
String Variable3;
public static KATZE T2[] = new KATZE[30]
}

//Und die Zuweisung :
public static HUND VAR = new HUND();

Das sollen jetzt also ineinander verschachtelte Datentypen
sein.
HUND enthält 30 x KATZE und jede KATZE enthält 30 x MAUS

Wenn ich jetzt auf Variable3 mit VAR.Variable3 zugeife und
dem Werte zuweise, gibt das keine Probleme!
Aber bei Zugriffen wie

-> VAR.T2[1].Variable2 oder
-> VAR.T2[1].T1[1].Variable1

gibt es bei der Ausführung des Programmes
„NoPointerExceptions“ und das selbst, wenn ich mit einer
Schleife versuche diesen Variablen Werte zuzuweisen. (Hab ich
vielleicht die Arrays falsch deklariert?)
Kann mir bitte jemand helfen?

Mal eine blöde Frage… wieso definierst du die Arrays als static? Wenn du 30x dies und das anlegen willst und diese wieder jeweils 30x was anderes enthalten, dann seh ich keinen Sinn darin und denke sogar es wird deswegen Probleme geben… mach mal alle „static“ Deklarationen raus…

Moin,

Allgemein solltest Du Deine Klassen und Variablen anders benennen. Es gibt da allgemein eingehaltene Regeln, die Deinen Quelltext leichter lesbar machen würden. Die Regeln findest Du zB. in ‚Java in a Nutshell‘.

Ich habe bei mir jetzt mit class neue Datentypen angelegt. Das
sieht in etwa so aus:

Mir scheint, daß Du etwas ganz anderes erreichen willst, ich kann dem Beispiel nur nicht entnehmen, was es ist.

public class KATZE
{
String Variable2;
public static MAUS T1[] = new MAUS[30];
}

„NoPointerExceptions“
Falls es sich um NullPointerExceptions handelt: Du legts zwar einen Array an, dieser Array ist aber nicht gefüllt, dh. alle Elemente sind null. Sobald Du auf Attribute dieser Elemente zugreifst, gibt es diese Exception.
Was Du brauchst ist also etwas wie:

for (int i = 0; i 
Wie scxhon beschreiben, soltest Du statische Variablen nur benutzen, wenn Du statische Variablen brauchst. Wenn sich das Programm mit Instanzvariablen nicht kompilieren läßt, liegt das Problem vermutlich anderswo.

Thorsten

hast du die Array auch initialisiert bevor du die einzelne Elemente drin ansprichst?
so etwa:
public static MAUS T1[] = new MAUS[30];
T1[0] = new MAUS();

sonst sind sie alle null.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich glaub genau das war mein Fehler! Mann ist mir das peinlich…
Aber trotzdem tausend Dank!!!