Hallo,
im Normalfall will man vermeiden, dass man direkt auf die Eigenschaften einer Klasse zugreift, um von der internen Arbeitsweise der Klasse zu abstrahieren.
Die Eigenschaft könnte von anderen Werten abhängen und die Klasse kann nicht darauf reagieren, wenn du die Eigenschaft von außen änderst. Dadurch können die Eigenschaften unter Umständen sinnlose Werte enthalten, die sich widersprechen. Auch wäre es der Klasse z.B. nicht möglich einen Wert erst aus der DB lesen, wenn er gebraucht wird.
Außerdem lässt sich über Methoden auch leichter ein Rückkompatibilität bewerkstelligen, indem ehemalige einfache Getter, dass frühere Verhalten simulieren und die neuem Methoden aufrufen. Rufen erst einmal Scripte Eigenschaften direkt auf wird es sehr schwierig an der Klasse etwas zu ändern.
Häufig machen Getter und Setter aber auch nichts anderes als die Eigenschaften auszulesen und zu setzen, was zunächst sinnlos ist. Jedoch geben sie dir die Möglichkeit später beim Auslesen oder setzen von Eigenschaften anderen Code mitauszuführen oder eine Validierung vorzunehmen.
Einige sprachen bieten auch Möglichkeiten an, um Getter/Setter automatisch zu erstellen, sodass man die Methoden nur dann manuell deklarieren muss, wenn man mehr machen möchte als eine Eigenschaft zu setzten oder zu lesen.
Viele Grüße Novi
"(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)