Hi,
eins vorweg: Benutz doch bitte [code] Tags um deinen Java code zu posten, das macht diesen sehr viel besser zu lesen. Jetzt ein paar Anmerkungen:
- Wenn du Methoden deklarierst, haben die entweder einen Rückgabewert oder nicht. Das Schlüsselwor "void" sorgt dafür dass sie keinen haben, als logische Konsequenz funktioniert natürlich ein "return" Statement innerhalb der Methode nicht und führt zu einem Fehler. Um das zu beheben, musst du entweder auf das "return" verzichten, oder statt "void" einen Typ angeben.
- Das führt uns direkt zu unserem nächsten Punkt: Es kann nur ein Typ zurückgegeben werden. In Hungern gibts du z.B. mal einen String zurück und mal einen float Wert. Auch das kann nicht funktionieren.
- Anders als in der Mathematik ist der Vergleichsoperatoren in den meisten programmiersprachen ein "==" und nicht "=" das nur Werte zuweist.
Ich gehe mal auf ein paar Fehler ein. Zuerst betrachten wir mal die Methode fuettern(). Diese sieht bei dir so aus:
Code:
public void fuettern()
{
float _hunger = _hunger + 1;
if (_hunger = -10)
return "fast verhungert";
else if (_hunger = 10)
return "überfressen";
else
return _hunger;
}
Die Signatur der Methode (das ist die erste Zeile) sagt: Diese Methode ist öffentlich und kann von überall aufgerufen werden (Schlüsselwort public). Diese Methode gibt nichts zurück (Schlüsselwort void). Diese Methode erwartet keine Parameter (Leere Klammer nach dem Namen). Nehmen wir mal an, dass diese Methode nur den Wert der den Hunger des Tamagotchis anzeigt um 1 erhöhen soll. Das ganze if-Konstrukt ist dann überflüssig, weil wir nichts zurückgeben wollen, das können wir also entfernen:
Code:
public void fuettern()
{
float _hunger = _hunger + 1;
}
Was dort jetzt gemacht wird, ist aber immernoch nicht ganz richtig. Durch das Schlüsselwort float, legst du innerhalb der Methode eine weitere lokale Variable an und speicherst darin den Wert. Durch entfernen des Wortes float wird auf die private Variable zugegriffen und der Wert wird richtigerweise um 1 erhöht.
Code:
public void fuettern()
{
_hunger = _hunger + 1;
}
Wenn die Methode entgegen unserer Annahme doch einen Wert zurückgeben soll, müssen wir die Methodensignatur ändern. Nehmen wir diesmal an, sie solle den veränderten Wert von _hunger zurückgeben, dann sieht das so aus:
Code:
public float fuettern()
{
_hunger = _hunger + 1;
return _hunger;
}
Beachte, dass der Rückgabetyp in der Methodensignatur (Zeile 1) mit dem Typ von _hunger korrespondiert. Möchtest du jetzt noch zusätzlich eine Ausgabe auf die Konsole erzeugen, bemühen wir wieder das if-Konstrukt, nutzen aber statt der Rückgabe "return" jetzt die Ausgabe "System.out.println()":
Code:
public float fuettern()
{
_hunger = _hunger + 1;
if (_hunger == -10)
System.out.println("fast verhungert");
else if (_hunger == 10)
System.out.println("überfressen");
else
System.out.println(_hunger);
return _hunger;
}
So, ich hoffe das hat dir etwas geholfen, in dem Code sind noch viele andere Fehler, deswegen nochmal der Hinweis: Du musst wahrscheinlich nicht ein ganz Buch lesen, aber hol dir ein Buch oder eine Webseite die du als Nachschlagewerk benutzen kannst. Zum Beispiel dass hier http://www.galileocomputing.de/openbook/javainsel6/ (das Buch ist vollständig im Netz).
Lesezeichen