Für ein Beispiel werde ich libgdx (Game Engine) verwenden, aber das ist eine Frage darüber, wie Java funktioniert, die ich nicht gefunden habe.Wenn ein Objekt als Parameter übergeben wird, wird mehr Speicher verwendet?
Dies ist die soundControler Klasse:
private final Sound s_0 = Gdx.audio.newSound(Gdx.files.internal("a.mp3"));;
private final Sound s_1 = Gdx.audio.newSound(Gdx.files.internal("a.wav"));
//lot of more variables
public void shoot(short sound){
if(SOUND_ENDABLED) {
switch (sound) {
case 0:
s_0.play();
break;
case 1:
s_1.play();
break;
}
}
}
das so ist im Grunde eine Bibliothek von Tönen in den Speicher geladen, die das Programm wird ständig werden.
Ein weiteres Beispiel:
Lassen Sie uns sagen, wir haben eine Animator
Klasse, die eine Menge von Methoden für jede Animation im Spiel haben wird.
Ist das eine gute Praxis? Oder werde ich jedes Mal, wenn ich die soundControler
als Parameter übergebe, eine neue Kopie aller Sounds und Methoden im Speicher erstellen?
Möglicherweise verwandt: [Ist Java-Pass-by-Referenz oder Pass-by-Wert] (http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by- Wert)? – nbrooks