Hallo liebes Forum,
als absoluter Java-Neuling hänge ich leider gerade komplett an der Frage, wie ich in einer Klasse Attribute aus anderen Klassen auslese.
Ich habe den Code verkürzt und hier angehangen. Es geht um ein Spiel. Es gibt eine Klasse "spieler", wo neue Spieler hinzugefügt werden können, eine Klasse "spiel", wo ein neues Spiel begonnen werden kann und eine Klasse, ich habe sie "ausführung" genannt, von wo aus alles gesteuert werden soll. Wenn ich aus dieser Klasse auf Attribute eines Spielers (der in der Klasse spiel erzeugt wird) zugreifen will, kommt eine nullpointerexception. Kann mir jemand sagen, woran das liegt? Bestimmt mache ich hier einen grundsätzlichen großen Java-Fehler.
Vielen Dank für Hilfestellungen,
Kieks
als absoluter Java-Neuling hänge ich leider gerade komplett an der Frage, wie ich in einer Klasse Attribute aus anderen Klassen auslese.
Ich habe den Code verkürzt und hier angehangen. Es geht um ein Spiel. Es gibt eine Klasse "spieler", wo neue Spieler hinzugefügt werden können, eine Klasse "spiel", wo ein neues Spiel begonnen werden kann und eine Klasse, ich habe sie "ausführung" genannt, von wo aus alles gesteuert werden soll. Wenn ich aus dieser Klasse auf Attribute eines Spielers (der in der Klasse spiel erzeugt wird) zugreifen will, kommt eine nullpointerexception. Kann mir jemand sagen, woran das liegt? Bestimmt mache ich hier einen grundsätzlichen großen Java-Fehler.
Java:
class ausführung {
spiel spiel1;
public static void main(String[] args) {
spiel spiel1 = new spiel();
System.out.println(spiel1.Startdatum);
System.out.println(spiel1.getStartdatum());
System.out.println(spiel1.getSpieler().getName());
//System.out.println(spiel1.spieler1.name);
}
}
Java:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
class spiel {
/* Deklaration der Klasse der Spiele */
// Anfang Attribute
/* Direkt nach dem Start wird die Startzeit festgehalten. */
LocalDateTime Startdatum;
/* Der erste Spieler wird erzeugt. */
public spieler spieler1;
// Ende Attribute
/* Standardkonstruktor setzt das Startdatum des Spiels */
spiel()
{
Startdatum = LocalDateTime.now();
spieler spieler1=new spieler();
}
// Anfang Methoden
public LocalDateTime getStartdatum()
{
return Startdatum;
}
public spieler getSpieler()
{
return spieler1;
}
// Ende Methoden
}
Java:
public class spieler {
/* Deklaration der Klasse der Spieler */
// Anfang Attribute
/* Name des Spielers */
public String name;
/* Position des Spielers 0=Startspieler */
public int position;
// Ende Attribute
/* Standardkonstruktor setzt die Standardeinstellungen des Spielers */
spieler() {
name = "noch nicht definiert";
position = 0;
}
// Anfang Methoden
public String getName()
{
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPosition()
{
return position;
}
public void setPosition(int position) {
this.position = position;
}
// Ende Methoden
}
Vielen Dank für Hilfestellungen,
Kieks