Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus.

Vilkazzz

Mitglied
Hallo Java forum'aner

ich habe eine sehr eifache Klasse deklariert:

Java:
public class Monat {
	
		byte nr;
		String name;
		String jahreszeit;

}

nun habe ich eine andere Klase erstellt, wo ich 12 arrays von der Klasse Monat machen will.

die Array Deklarierung klappt auch !

Java:
public class MakeMonth {

	public static void main(String[] args) {
		
		Monat[] month = new Monat[12];
		
		month[0].name="Januar";
               //(Rest habe ich im code ausgeklammert, um sicherzugehen, dass es keine Andere Fehlerquellen gibts.)

		
	}

}

aber wo ich auch nur eine Deklarierung machen wollte, kommt bei mir die Fehlermeldung.

Sogar wo ich ohne for Schleife es manuell eingeben will, spuckt es mir Fehlercode aus

Java:
month[0].name="Januar";


Fehlermeldung =
Java:
Exception in thread "main" java.lang.NullPointerException
	at de.vilkas.MakeMonth.main(MakeMonth.java:27)

nun, ich habe aber vorher bereits in main classen arrays deklariert,
könnt ihr mir mein Fehler zeigen ?

oder soll ich es völlig anders machen ?

(ich will eine array erzeugen mit 12 Objekten der klasse "Monat",
wo jeder deklarierter month[] eine .nr .name .jahreszeit variable hat.
Die Benenungs schleife habe ich bereits, kein Problem, nur das Zuweisen,
daran schweitere ich 😵

bin für jede hilfe dankbar.

mfg

Vilkazzz
 
du erstellst zwar ein Array von Monaten, aber deine einzelnen Einträge im Array sind noch nicht initialisiert. Mit
Code:
 Monat[] month = new Monat[12];
initialisierst du nur das Array.

Damit du per
Code:
 month[0].name="Januar";
zugreifen kannst, musst du vorher den Eintrag [0] im Array als Monat initialisieren:
Code:
month[0] = new Month();

Schöner kannst du es natürlich machen indem du einen Konstruktor für Monat erstellst und somit gleich das Objekt inklusive properties dem Array hinzufügst.
Code:
month[0] = new Month("jannuar","Winter");
 
H
Java:
public class MakeMonth {
	public static void main(String[] args) {	
		Monat[] month = new Monat[12];	
		month[0].name="Januar";
               //(Rest habe ich im code ausgeklammert, um sicherzugehen, dass es keine Andere Fehlerquellen gibts.)
	}
}

Wenn du ein Array initialisiert mit
Code:
new Monat[12]
ist es leer und du musst erst jeden Index mit einem Objekt befüllen.
Da dies nicht passiert du aber so tust, fliegt eine NullPointer Exception.
 
Zuletzt bearbeitet:
vielen Dank ihr beiden !

es hat mein Problem gelöst und Verständniss über Arrays vergrößert !

/bow

/omw schöne Construct Schleife zu basteln 😉
 

Zurück
Oben