Setter Methode Wertebereich eingrenzen

Toretto

Mitglied
Hi

ich hätte mal ne Frage:
Ich würde gerne den Wertebereich von der Setter Methode eingrenzen, nur komm ich grad nicht drauf wie ich vorgehn soll. Mir fällt nur das ein:

Java:
public class Termin
{
	int tag;
	
	public void setTag(int tag)
	{
		if(tag>0 && tag<32)
			this.tag = tag;
	}
}

Falls aber "tag" jetzt außerhalb des Bereiches (
Code:
if(tag>0 && tag<32)
) liegt, wird "tag" auf 0 gesetzt. Wie könnte ich das verändern??
Habs rekursiv probiert funktioniert aber iwie auch nicht oder ich hab die vorlesung damals nicht gecheckt.

Habs dann so verändert:
Java:
public class Termin
{
	int tag;
	
	public void setTag(int tag)
	{
		if(tag>0 && tag<32)
			this.tag = tag;
                else
                        setTag(int tag)
	}
}
Da zeigts bei mir aber nen Fehler beim "int" an.
Fehler sieht so aus: - Syntax error on token "int", delete this token

Hab jetzt keine Ahnung wie ich das weiter angehen soll.

Schon mal Danke für die Hilfe 🙂

lg Toretto
 
Falls aber "tag" jetzt außerhalb des Bereiches (
Code:
if(tag>0 && tag<32)
) liegt, wird "tag" auf 0 gesetzt. Wie könnte ich das verändern??


Nö, "tag" ist von Anfang an 0 😀
Mit irgendwas muss es ja initialisiert sein "null" gibts da ja nicht. Eine Möglichkeit wäre eine Exception zu werfen, 0 bleibts dann trotzdem. Welchen Wert sollte tag denn deiner Meinung danach haben? :bahnhof:
 
Fehler sieht so aus: - Syntax error on token "int", delete this token

Du hast in der Methode setTag bereits ein (int tag) und damit die Variable deklariert.

[JAVA=10]setTag(int tag)[/code]

müsste wenn überhaupt so lauten

[JAVA=10]setTag(tag)[/code]

also das int löschen, wie es auch in der Fehlermeldung steht! Aber das wäre logisch Falsch, da Endlosschleife.

Aber was soll die Methode denn machen, wenn der Tag außerhalb des Bereiches ist.
 
Zuletzt bearbeitet:
@Toretto

Wenn du dein Programm auf das syntaktisch korrekte
Java:
setTag(tag)
änderst, wirst du eine Endlosschleife bekommen.
 
Ahh :bloed: jetzt hab ich gecheckt warums net geht. Endlich. Nja dann muss ichs durch ne Exception machen...

Danke ;-)

Thread kann geclosed werden
 
nur vollstaendigkeitshalber - dafuer gibt es zb die IllegalArgumentException
Java:
public void setTag(int tag)
    {
        if(tag<0 || tag>32) {
             throw new IllegalArgumentException("Tag ungueltig " + tag);
       }
       this.tag = tag;
    }
 

Zurück
Oben