Wenn print() den Wert der in st enthalten ist ändert, wird dies das aktuelle Objekt ändern?

Eine gute Antwort könnte sein:

Nein. Nicht das aktuelle Objekt. Das Ändern der Objektreferenz wird das Objekt nicht ändern.

Einen Referenz-Parameter ändern

Hier ist ein geändertes Programm, indem die print() Methode den Wert ändert, den ihr formaler Parameter enthält.

class ObjectPrinter2
{
  public void print( String st )
  {
    System.out.println("Erster Wert des Parameters: " + st );

    st = "Hah! Ein zweites Objekt!" ;

    System.out.println("Zweiter Wert des Parameter: " + st );

  }
}

class OPTester2
{
  public static void main ( String[] args )
  {
    String message = "Originalobjekt" ;


    ObjectPrinter op = new ObjectPrinter();

    System.out.println("Erster  Wert von message: " + message );

    op.print( message );

    System.out.println("Zweiter Wert von message: " + message );
  }
}

FRAGE 8:

Was ist die Ausgabe des Programms?

Erster  Wert von message: 
Erster Wert von Parameter: 
Zweiter Wert von Parameter: 
Zweiter Wert von message: