Die Klassenmethode ändert die Klassenvariable. Die main()
Methode gibt den aktuellen Wert in der Variablen aus, der nicht mehr der ist, mit dem sie begonnen hat. Der Wert der Variablen N
wurde durch die factorialAlt()
geändert.
Man könnte sagen, dass das Problem offensichtlich ist und es keinen Grund gibt globale Variablen zu vermeiden. Aber dieses Programm besteht aus nur 10 Zeilen Code. Versucht einmal, ein solches Problem in einem Programm mit 50.000 Zeilen zu finden. Da herrscht pure Verwirrung.
Bei Toyota Fahrzeugen kam es zwischen 2009 und 2011 zu unbeabsichtigter Beschleunigung, die zu mehreren Todesfällen führte. Zumindest ein Teil des Problems wurde auf die vielen globalen Variablen im Steuerungsprogramm für Drosselklappen zurückgeführt. Toyota hat (bisher) 1,2 Milliarden Dollar an Schadenersatz gezahlt.
Modularität ist sehr wichtig.
Kann eine Klassenmethode eine andere Klassenmethode aufrufen?