Moin!
public class Raumschiff {
/**
* Geschwindigkeit in Metern pro Sekunde
*/
public int speed = 0;// weitere Variablen und Methoden
}
>
> Nun könnte jemand einfach daherkommen und einem Raumschiff die Geschwindigkeit von 400.000.000 Metern pro Sekunde zuweisen (Achtung: das ist schneller als die Lichtgeschwindigkeit).
Dein Beispiel ist recht schlau gewählt, aber in eine vollkommen andere Richtung.
Beschleunigung des Raumschiffs ist gut.
Angenommen, man möchte das Raumschiff um 200 km/s beschleunigen. Was ist schlauer zu programmieren?
Erst die gewünschte Änderung der Geschwindigkeit an die Eigenschaft übergeben:
$raumschiff->beschleunigung\_um = 200;
Und dann die komplexen Operationen zum Beschleunigen ausführen:
$raumschiff->ab\_dafuer();
Oder lieber alles in eins packen:
$raumschiff->picard\_energie(200);
Natürlich kann man sich getter und setter für alle Eigenschaften schreiben. Man sollte es sogar, der Direktzugriff auf Eigenschaften einer Klasse ist ja eher böse.
Und mit so einem setter kann man die Zuweisung von 200 an $raumschiff->beschleunigung\_um dann natürlich abfangen und in den Aufruf von ab\_dafuer() münden lassen. Nur ist das vom Prinzip her dann doch eher genau, wie der parametrische Aufruf von picard\_energie(200).
- Sven Rautenberg
--
"Love your nation - respect the others."