Public Attribute oder getter - funktioniert leider beides hier nicht

Kieks

Mitglied
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.

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
 

Harry Kane

Top Contributor
Poste mal den stacktrace. Ich rate mal, dass der Fehler auftritt, wenn du aus einer anderen als der main-Methode auf die Eigenschaften zugreifen willst.
 

Kieks

Mitglied
Ich weiß leider nicht, was ein Stacktrace ist. Ist das die Ausgabe, die erscheint?
Diese lautet:
"2016-12-30T13:57:22.868
2016-12-30T13:57:22.868
Exception in thread "main" java.lang.NullPointerException at ausführung.main(ausführung.java:7)"

Die siebte Zeile in Ausführung ist diese hier:
Java:
System.out.println(spiel1.getSpieler().getName());
 

JCODA

Top Contributor
Im Konstruktor von spiel definierst du einen lokalen spieler1, dieser sollte aber das Instanzattribut initialisieren.
Versuche es mal so;
Java:
spiel()
    {
        Startdatum = LocalDateTime.now();
        spieler1=new spieler();
    }

Außerdem:
Gewöhn' dir an, Klassen groß zu schreiben, d.h. Spiel, Spieler
und Attribute klein, also etwa startdatum statt Startdatum
 

Kieks

Mitglied
Vielen Dank, JCODA! Wenn ich das so mache:
Java:
/* Direkt nach dem Start wird die Startzeit festgehalten. */
    Startdatum=LocalDateTime.now;
    /* Der erste Spieler wird erzeugt. */  
    spieler1=new spieler();

kommt der Fehler, dass der identifier fehlt:
spiel.java:9:15: error: <identifier> expected
Startdatum=LocalDateTime.now;
^
spiel.java:11:13: error: <identifier> expected
spieler1=new spieler();
^
2 errors

Setze ich ein LocalDateTime und ein spieler davor:
Java:
    /* Direkt nach dem Start wird die Startzeit festgehalten. */
    LocalDateTime Startdatum=LocalDateTime.now;
    /* Der erste Spieler wird erzeugt. */   
    spieler spieler1=new spieler();

findet Java das Symbol ".now" nicht:
spiel.java:9:43: error: cannot find symbol
LocalDateTime Startdatum=LocalDateTime.now;
^
symbol: variable now
location: class LocalDateTime
1 error
 

Kieks

Mitglied
Ich hatte die Klammer hinter .now vergessen. Vielen Dank!
Das funktioniert jetzt.
An den Hinweis mit der Groß- und Kleinschreibung werde ich mich halten! Danke!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Warum sind Attribute der Klasse java.awt.Point public? Java Basics - Anfänger-Themen 3
K OOP Attribute von Klasse in die public class übertragen? Java Basics - Anfänger-Themen 7
C Kann mir jemand sagen warum public void unzulässig ist? Java Basics - Anfänger-Themen 2
Say public/default Interface Java Basics - Anfänger-Themen 9
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
melaniemueller Datenkapselung Sichtbarkeit public Java Basics - Anfänger-Themen 4
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
S public static boolean Java Basics - Anfänger-Themen 4
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
J Methoden Methoden einer public class AutoCompleteTextField verwenden Java Basics - Anfänger-Themen 14
G Klassen Mit fremder Klasse auf public Methode zugreifen Java Basics - Anfänger-Themen 23
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
Javafan01 Dateiname und Public class Java Basics - Anfänger-Themen 4
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
A Methoden Unterscheid zwischen public und ohne Java Basics - Anfänger-Themen 9
J Klasse wird als private erkannt obwohl sie public deklariert ist Java Basics - Anfänger-Themen 3
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
L RSA Public Key einlesen Java Basics - Anfänger-Themen 0
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
T Variablen Getter-Setter vs Public Variable? Java Basics - Anfänger-Themen 5
K modifier public Java Basics - Anfänger-Themen 3
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
D Klassenvariablen standardmäßig private oder public? Java Basics - Anfänger-Themen 2
T Java Code Hilfe - public void xxx() Java Basics - Anfänger-Themen 2
T public void - Problem Java Basics - Anfänger-Themen 10
B public/private nur 1x schreiben Java Basics - Anfänger-Themen 3
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
N Java UML: Eine Frage zu public-Variablen Java Basics - Anfänger-Themen 19
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
T public-private problem Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
C Erste Schritte felder, die public final sind Java Basics - Anfänger-Themen 6
B main methode ohne public Java Basics - Anfänger-Themen 5
W Frage public protected konstruktor Java Basics - Anfänger-Themen 6
V public Variablen vs Getter + Setter Java Basics - Anfänger-Themen 4
S Frage zu public static Java Basics - Anfänger-Themen 29
J "public int x" - Zugriff von anderer Klasse (selbes Package) nicht möglich?! Java Basics - Anfänger-Themen 4
E Methoden public static void main(String[] args) Java Basics - Anfänger-Themen 9
O Was bedeutet public class value? Java Basics - Anfänger-Themen 3
I Methoden Problem If/Else; Public Void Java Basics - Anfänger-Themen 6
K Kapselung public / private verständis problem Java Basics - Anfänger-Themen 17
T Kapselung: public-Methoden in protected-Klassen Java Basics - Anfänger-Themen 3
F public variable erstellen, & darauf zugreifen Java Basics - Anfänger-Themen 12
B Variablen Variablen in try / catch "public" machen? Java Basics - Anfänger-Themen 3
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
B Public boolean einfügen Java Basics - Anfänger-Themen 12
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
R jLabel lässt sich nicht public setzen?? Java Basics - Anfänger-Themen 15
Hamstinator public static. Gute Idee? Java Basics - Anfänger-Themen 6
-horn- public static double[][][] NAME() nur per RETURN Wertrückgabe möglich? Java Basics - Anfänger-Themen 20
S Public-Klassen und Dateien Java Basics - Anfänger-Themen 5
StickToFreak Fehler mit public class Java Basics - Anfänger-Themen 13
K konstruktur als public definieren Java Basics - Anfänger-Themen 11
StickToFreak public class problem ôÔ Java Basics - Anfänger-Themen 3
G field public/private wann Java Basics - Anfänger-Themen 11
H eine als public deklariete Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
T Konstruktor mit oder ohne public-Bezeichner? Java Basics - Anfänger-Themen 4
T Geht so was? public void verkaufe (<X implements Produkt& Java Basics - Anfänger-Themen 8
P immer "public class". ? Java Basics - Anfänger-Themen 4
J Public / Private Keys speichern bzw. lesen? Java Basics - Anfänger-Themen 8
A kein zugriff auf variable trotz public? Java Basics - Anfänger-Themen 3
C public static void main(String[] args) Java Basics - Anfänger-Themen 6
D Frage zu public static void main. Java Basics - Anfänger-Themen 4
J public class Java Basics - Anfänger-Themen 15
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
G Vor oder hinter public static void main. ? Java Basics - Anfänger-Themen 8
G (Anfängerproblem) Problem mit dem Aufruf von public-Methoden Java Basics - Anfänger-Themen 3
O Unterschied zwischen static und public Java Basics - Anfänger-Themen 2
D Zugriff auf attribut anderer Klasse privat/public? Java Basics - Anfänger-Themen 9
B Warum manchmal public class und manchmal nur class Java Basics - Anfänger-Themen 3
A Javadoc nur bei public Klassen? Java Basics - Anfänger-Themen 3
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
G Was ist public static void main(String[] args)? Java Basics - Anfänger-Themen 12
P public enum ";"expected Java Basics - Anfänger-Themen 7
B public und protected Java Basics - Anfänger-Themen 11
G <identifier> expected bei public void final Java Basics - Anfänger-Themen 3
G GUI Controls private oder public Java Basics - Anfänger-Themen 6
G Variablen public oder private? Java Basics - Anfänger-Themen 9
R public Klassen Java Basics - Anfänger-Themen 12
I public Verständnisfrage Java Basics - Anfänger-Themen 5
S private public Java Basics - Anfänger-Themen 5
R private / public Frage Java Basics - Anfänger-Themen 7
F Warum sind Interface-Methoden public? Java Basics - Anfänger-Themen 19
C public void keyPressed(KeyEvent e) Java Basics - Anfänger-Themen 2
G Public ,private,protected Java Basics - Anfänger-Themen 1
N public void und verhalten bei return Java Basics - Anfänger-Themen 2
K public boolean contains (Object obj) > true or false Java Basics - Anfänger-Themen 16
M public static void main(String... args)<- Was bedeutet das? Java Basics - Anfänger-Themen 5
A public/private/etc. Zusatz weglassen Java Basics - Anfänger-Themen 2
A die public static void main ? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben