Kann die anzeigen() Methode die Instanzvariablen des Objekts (wie kontoStand) sehen?

Eine gute Antwort könnte sein:

Ja.

Was Anweisungen sehen können

Anweisungen einer Methode (so wie anzeigen()) können die Instanzvariablen und die anderen Methoden des Objekts sehen. Aber sie können die Parametern (und lokalen Variablen) anderer Methoden nicht sehen. Hier ist ein weiterer Blick auf die KontoChecker-Klasse:

class KontoChecker
{
  . . . .
  private int    kontoStand;

  . . . .
  void  verarbeiteEinzahlung( int betrag )
  { // Gültigkeitsbereich von betrag beginnt hier
    kontoStand = kontoStand + betrag ;
    // Gültigkeitsbereich von betrag endet hier
  }

  void verarbeiteAuszahlung( int betrag )
  { // Gültigkeitsbereich von betrag beginnt hier
    int gebuehr;

    inkrementZaehler();
    if ( kontoStand < 100000 )
      gebuehr = 15;
    else
      gebuehr = 0;

    kontoStand =  kontoStand - betrag - gebuehr  ;
    // Gültigkeitsbereich von betrag endet hier
  }

}

Zwei Methoden verwenden den gleichen Bezeichner betrag für zwei verschiedene formale Parameter. Jede Methode hat ihre eigenen formalen Parameter, vollkommen unabhängig von anderen Methoden. Das ist OK. Der Gültigkeitsbereichs der zwei Parametern überschneidet sich nicht, so dass die Anweisungen der einen Methode die formalen Parameter der anderen Methode nicht "sehen" können.

Zum Beispiel kann die Anweisung

kontoStand =  kontoStand - betrag - gebuehr  ;

in der zweiten Methode nur den formalen Parameter dieser Methode sehen---der Gültigkeitsbereich des formalen Parameters der anderen Methode enthält diese Anweisung nicht.

FRAGE 6:

Können die zwei formalen Parameter, die beide betrag heißen, unterschiedliche Datentypen haben (Zum Beispiel, kann der eine ein int und der andere ein long sein)?