zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

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

Antwort:

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 Parameter (und lokalen Variablen) anderer Methoden nicht sehen. Hier ist ein weiterer Blick auf die Konto-Klasse:

class Konto
{
  . . . .
  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ültigkeitsbereich der zwei Parameter ü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 ihrer 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. (Kann zum Beispiel der eine ein int und der andere ein long sein)?