Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] Anfänger Problem
Wieso bekomme ich beim ausführen dieses Codes immer diese Fehlermeldung???
public class test {
public static void main(String args[]) {
Kind kind = new Kind();
System.out.println(kind.vater[0].test);
}
}
class Vater {
int test;
}
class Kind {
Vater[] vater = new Vater[5];
}
Fehlermeldung:
Exception in thread "main" java.lang.NullPointerException
at test.main(test.java:5)
Hoffe jemand kann mir antworten!!!!!
axeljaeger
06-04-2004, 13:09
weil kind.vater[0] null ist
Wieso soll kind.vater[0] = null sein wenn ich mit
Vater[] vater = new Vater[5];
5 Objekte von Typ Vater anlege???
axeljaeger
06-04-2004, 13:40
Du legst ein Array mit 5 Elementen an, die einzelnen Elemente sind aber noch nicht initialisiert.
peschmae
06-04-2004, 14:20
class Kind {
Vater[] vater = new Vater[5];
Kind() {
for (int i = 0; i < vater.length(); i++)
vater[i] = new Vater();
}
}
ausserdem sind die "int test" auch noch nicht initialisiert (es sei denn Java mache das schon - möglich. afair sind die aber dann auf NAN (not a number) oder so initialisiert)
MfG Peschmä
axeljaeger
06-04-2004, 14:58
Java initalisiert afaik alle ints mit 0.
Dank an peschmae . Jetzt funktionierts!!!!!!!!!
peschmae
06-04-2004, 18:27
axeljaeger: Stimmt. Interessannterweise revoltiert der Compiler bei mir (der von Kaffe) wenn man einfach so was macht:
int i;
System.out.println(i);
wenn der int in nem Objekt versteckt ist sagt er nix und dann isser 0
MfG Peschmä
anda_skoa
06-04-2004, 20:11
Member Variablen werden bei Instanzerzeugung initialisiert, lokale Variablen nicht.
Da meldet sich auch der javac von Sun.
Ciao,
_
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.