Konstanten sind konstant, ändern also ihren Wert nicht. Du kannst ihren Wert lediglich im Scripteditor, außerhalb einer Methode ändern. Innerhalb einer Methode lassen sich Konstanten nur über einen Umweg ändern. Aber selbst dann: Jedes Mal wenn du eine Konstante änderst, wird eine Warnung ausgegeben. Nur die sieht man beim RPGMaker nicht, wenn man das Programm nicht über die Konsole öffnet. Konstanten lassen sich also im Allgemeinen nur "manuell" ändern, nicht aber durch irgendein Script (wie gesagt, über Umwege ist es möglich, aber auch das ist eher unüblich und nur für spezielle Anwendungsfälle gedacht).

Schneller ist der Zugriff auf Konstanten nicht unbedingt. Aber wenn du eine Variable willst, die ihren Wert nicht ändert und auf die man von überall zugreifen kann, dann definierst du dir eben eine Konstante.

Im übrigen sind Instanzvariablen ja auch nicht global. Jedes Objekt hat seine eigene Belegung für die Instanzvariablen. Darum lassen sich Konstanten und Instanzvariablen schlecht vergleichen.

Zitat Zitat
welchen Effekt wird es haben unnötige private Variablen durch konstante aus zu tauschen?
Wenn du Informationen hast, die über mehrere Objekte hinweg mitgegeben werden sollen, dann ist eine Instanzvariable ungeeignet. Hier musst du unterscheiden: Sollen mehrere Objekte schreibend und lesend auf die Variable zugreifen, dann solltest du eine Klasseninstanzvariable verwenden. Sollen mehrere Objekte nur lesend auf eine unveränderliche Variable zugreifen, dann solltest du Konstanten verwenden. Soll jedes Objekt einen eigenen "Speicher" haben, dann verwendest du Instanzvariablen.