(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 dies 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
Dies 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 manche Methoden mancher Klassen verwendet wird, werden sich die Daten des Objekts ändern. Sie müssen die Klassendokumentation lesen, um zu erfahren wann dies 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.