Übungen
Aufgabe 1 - Geburtstagsschwindler
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.
Bei Eingabe eines negativen Wertes soll das Alter auf 0 gesetzt werden.
Tipp: Du kannst mit Math.max(zahl1, zahl2)
das Maximum
von zwei Zahlen
- also die größere von zwei Zahlen - berechnen.
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.