Übungen

Aufgabe 1 - Geburtstagsschwindler

Hinweis: Du benötigst für diese Aufgabe if-Anweisungen. Ein Beispiel findest Du unter Timer im Codepad benutzen - Aufgabe 4. if-Anweisungen werden später noch ausführlich behandelt.

In der dargestellten Klasse Mensch ist ein sehr einfaches Modell implementiert, bei dem ein Mensch nach der Erzeugung ein zufälliges Alter besitzt.

class Mensch
{
	int alter;

	Mensch()
	{
		alter = new java.util.Random().nextInt(100);
	}
}

Mache Dir klar, dass das Attribut alter nicht geschützt ist, indem Du - ähnlich dem Timer - in der Direkteingabe einen Menschen erstellst, und sowohl lesend als auch schreibend auf das Attribut zugreifst.

Ändere den Code so ab, dass ein direkter, unkontrollierter Zugriff darauf nicht mehr möglich ist. Ergänze eine get- und eine set-Methode, so dass das Alter erfragt und geändert werden kann. Beim Abfragen des Alters soll der Wert 18 zurück gegeben werden, falls das Alter unter 18 ist. Ansonsten soll das richtige Alter zurück gegeben werden. Beim Setzen des Alters sollen nur positive Werte möglich sein.

class Mensch
{
    private int alter;

    public Mensch()
    {
        alter = new java.util.Random().nextInt(100);
    }

    public int getAlter()
    {
        if(alter < 18)
            return 18;
        else
            return alter;
    }
    
    public void setAlter(int alt)
    {
        if(alt > 0)
            alter = alt;
    }            
}

Aufgabe 2 - private vs. public

Aufgabe 3 - Stilfrage

Oft erscheint die Konvention Attribute als privat zu definieren überflüssig. In vielen Fällen wird man get- und set-Methoden schreiben, die nichts anderes machen als den Attributwert zurück zu geben oder zu überschreiben. Dennoch sollte man sich -zumindst außerhalb von Lernprojekten- an diese Konvention halten. Erkläre warum dies eine gute Idee ist. Überlege Dir dazu wie sich die Benutzung einer Klasse ändert, wenn man im Nachhinhein bemerkt, dass beim Ändern von Attributwerten nur bestimmte Werte zugelassen werden sollten.

X

Fehler melden

X

Suche