M
Malcolm
Gast
Hallo,
kann mir einer von euch sagen warum folgendes Programm folgenden Laufzeitfehler auswirft. Wenn ich die Methode ausgabe() als Klassenmethode (durch static) festlege tritt der Laufzeitfehler nichtmehr auf. Warum muss die Methode als Klassenmethode (static) deklariert werden bzw. ist es auch möglich aus der Klasse Unterzustand die ja von der Klasse Zustand erbt (welche wiederum eine Referenz auf die Klasse Maschine hat) auf eine Methode der Klasse Maschine zuzugreifen ohne die entsprechende Methode in der Klasse Maschine als statische Methode festzulegen?
Vorab schonmal vielen dank für die Hilfe
Exception in thread "main" java.lang.NullPointerException
at Unterzustand.<init><TestKlasse.java:32>
at TestKlasse.main(TestKlasse.java:6>
kann mir einer von euch sagen warum folgendes Programm folgenden Laufzeitfehler auswirft. Wenn ich die Methode ausgabe() als Klassenmethode (durch static) festlege tritt der Laufzeitfehler nichtmehr auf. Warum muss die Methode als Klassenmethode (static) deklariert werden bzw. ist es auch möglich aus der Klasse Unterzustand die ja von der Klasse Zustand erbt (welche wiederum eine Referenz auf die Klasse Maschine hat) auf eine Methode der Klasse Maschine zuzugreifen ohne die entsprechende Methode in der Klasse Maschine als statische Methode festzulegen?
Vorab schonmal vielen dank für die Hilfe
Exception in thread "main" java.lang.NullPointerException
at Unterzustand.<init><TestKlasse.java:32>
at TestKlasse.main(TestKlasse.java:6>
Code:
public class TestKlasse
{
public static void main(String[]args)
{
Maschine maschine = new Maschine();
Unterzustand unterzustand = new Unterzustand();
}
}
class Maschine
{
Zustand zustand;
public void ausgabe()
{
System.out.println("Hallo");
}
}
class Zustand
{
Maschine maschine;
}
class Unterzustand extends Zustand
{
public Unterzustand()
{
maschine.ausgabe();
}
}