(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 ) );
  }
}

Eine gute Antwort könnte sein:

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.

Kann eine Methode einen primitiven Typ ändern?

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.

FRAGE 11:

Prüfen Sie das folgende Codefragment:

Point b = new Point();
short x = 16, y = 12;

b.move( x, y );

Die Parameter x und y enthalten short Werte, die für die Methode in int Werte konvertiert werden müssen. Werden die Inhalte von x und y durch diese Konvertierung geändert?