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

Eine gute Antwort wäre:

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

Einen Referenz-Parameter ändern

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

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

    st = "Ha! Ein zweites Objekt!" ;

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

  }
}

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


    ObjektPrinter2 op = new ObjektPrinter2();

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

    op.ausgeben( mitteilung );

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

FRAGE 8:

Was ist die Ausgabe des Programms?

Erster  Wert von mitteilung: 
Erster Wert des Parameters: 
Zweiter Wert des Parameters: 
Zweiter Wert von mitteilung: 
Inhaltsverzeichnis