Frage:
Sorge nun in der Klasse Hund dafür, dass keine NullPointerException mehr auftritt.
Nutze eine einfache Fallunterscheidung, um den problematischen Fall zu vermeiden, sodass ein Aufruf von verwirreHund keinen Laufzeitfehler mehr erzeugt. Stattdessen sollte in diesem Fall einfach nichts passieren.
Unten steht der unveränderte Code und man muss wohl die Methode public void nimmStock verwenden (darauf bezieht sich nämlich verwirreHund)
Es ist zwar kompliziert formuliert, aber im Prinzip soll ich eine if Bedingung einführen, die besagt das null als Stock nicht genommen wird. Nur klappt es bei mir nicht, egal wie ich es mit !=null etc. aufschreibe
Code:
public class Hund {
private int _alter;
private String _name;
private Stock _stock;
public Hund(String name)
{
_alter = 0;
_name = name;
_stock = null;
}
public String gibName()
{
return _name;
}
public void feierGeburtstag()
{
_alter = _alter + 1;
}
public int gibAlter()
{
return _alter;
}
public boolean hatStock()
{
return _stock != null;
}
public void nimmStock(Stock stock)
{
if (hatStock())
{
return;
}
if (stock.gibLaenge() < 200)
{
_stock = stock;
}
}
public void legeStockAb()
{
_stock = null;
}
}