(Denkfrage:) Glauben Sie, dass das folgende funktioniert:
class CosBsp4
{
public static void main ( String arg[] )
{
long w = 0;
System.out.println( "Kosinus ist:" + Math.cos( (double)w ) );
}
}
Ja — die Typumwandlung (double)
wird nicht wirklich gebraucht,
da sie nach einer Konvertierung verlangt, die ohnehin durchgeführt werden würde.
Aber manchmal tun das Programmierer gerne, um klar zu machen was passiert.
Prüfen Sie das folgende Codefragment:
IrgendeineKlasse s = new IrgendeineKlasse(); // ein neues Objekt der Klasse // IrgendeineKlasse erstellen int x = 32; s.irgendeineMethode( x ); // eine Methode des Objekts s aufrufen System.out.println( "x ist: " + x ); // was wird ausgegeben?
Wenn eine primitive Variable als ein Parameter verwendet wird, ganz egal in welcher Methode, wird die Methode den Wert der Variablen nicht ändern. Also wird das oben stehende Fragment ausgeben:
x ist: 32
Das wird wahr sein, egal um welche Klasse es sich bei IrgendeineKlasse
handelt und
egal was für eine Methode irgendeineMethode
ist.
Wenn ein Objekt als Parameter für bestimmte Methoden bestimmter Klassen verwendet wird, werden sich die Daten des Objekts ändern. Sie müssen die Klassendokumentation lesen, um zu erfahren wann das der Fall ist. Die meisten Methoden ändern ihre Parameter nicht, da das Verwirrung und Fehler verursachen kann. Zum größten Teil werden Parameter dazu verwendet Daten an eine Methode zu übergeben, um ihr mitzuteilen, was zu tun ist.