Hallo,
Demzufolge hätte das Objekt das Du anlegst folgende Merkmale:
* Ist es einmal angelegt, kann es nicht verändert werden.
* Es kann nur Auskunft über seine Attribute geben.
In diesem Fall, sollte man sich überlegen, ob man wirklich eine Klasse braucht. Möglicherweise reicht ja auch ein einfaches assoziatives Array.
* Die Eigenschaften die es hat sind so einfach anzulegen, dass es sich nicht lohnt private Methoden zu schreiben, auf die vom Konstruktor aus zugegriffen wird.
Doch, das lohnt sich immer. Wenn jemand die Klasse benutzen will, brauch er nicht zu wissen, wie die Daten intern gespeichert sind (Stichwort »Information-Hiding«). Und sollte es mal der Fall sein, dass man die Datenspeicherung intern aus irgendwelchen Gründen anders lösen möchte, sind entsprechende Methoden von Vorteil, da sich die Schnittstelle nicht zu ändern braucht.
Zwar mögen diese Gründe, bei sehr kleinen und einfachen Klassen unwichtig sein, aber da sollte man sie allein schon deshalb hinzufügen, damit die Schnittstellen einheitlich sind und der Anwender der Klassen nicht jedesmal überlegen muss, ob es eine entsprechende Methode gibt oder er auf das Feld direkt zugreifen muss.
In dem Moment wo Du aber für eine Klasse mehrere überladene Konstruktoren verwendest, oder die Eigenschaften eines Objektes nach dem Anlegen veränderlich halten möchtest, oder welche hinzufügen möchtest, wird Deine Klasse schnell um entsprechende Methoden wachsen.
Genau, deine Klasse, Thomas, besteht gerade nur aus ein paar Feldern mit vordefinierten Werten und den entsprechenden Get-Methoden. Du hast noch nicht einmal Set-Methoden um den Wert der Felder zu ändern. In der Regel bestehen Klassen jedoch auch noch aus anderen Methoden, die mehr können. Das ist auch ihr Vorteil gegenüber simplen Strukturen, wie man sie z.B. von C kennt.
Schöne Grüße,
Johannes
Das sage ich deshalb, weil ich Hompagebauer bin und Ahnung davon .
ss:| zu:) ls:[ fo:) de:] va:) ch:) n4:| rl:) br:< js:| ie:{ fl:( mo:}