zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Ist es schwierig dieses Problem abzuwenden?

Antwort:

Nein — normalerweise werden alle Instanzvariablen in der Klassendefinition an einer Stelle deklariert und es ist leicht sie zu kontrollieren.

Methoden überladen

Wenn zwei oder mehr Methoden einer Klasse den gleichen Namen, aber verschiedene Parameterlisten haben, spricht man vom Überladen der Methoden. Wenn eine der Methoden (von main() oder einer anderen Methode) aufgerufen wird, ist es durch die Übereinstimmung der aktuellen Parameter mit der formalen Parameterliste klar welche Methode gemeint ist.

Hier ist eine weitere Änderung der Konto Klasse:

class Konto
{
  . . . .
  private int    kontostand;

  . . . .
  void  verarbeiteEinzahlung( int betrag )
  {
    kontostand = kontostand + betrag ;
  }

  void  verarbeiteEinzahlung( int betrag, int gebuehr )
  {
    kontostand = kontostand + betrag - gebuehr;
  }

}

Angenommen, dass zwei verarbeiteEinzahlung() Methoden gebraucht werden:

Der oben stehende Code implementiert diese Anforderung. Hier ist ein Beispiel der main() Methode, die beide Methoden verwendet:

class KontoTester
{
  public static void main( String[] args )
  {
    Konto bobsKonto = new Konto( "999", "Bob", 100 );
    bobsKonto.verarbeiteEinzahlung( 200 );       // Anweisung A
    bobsKonto.verarbeiteEinzahlung( 200, 25 );   // Anweisung B
  }
}

Es gibt zwei Methodenaufrufe und zwei Methoden, die dafür zur Verfügung stehen. Ein Methodenaufruf ruft die Methode auf, die sowohl dem Namen als auch der Parameterliste entspricht.

FRAGE 12:

Prüfen Sie main().

Welche Methode, verarbeiteEinzahlung(int) oder verarbeiteEinzahlung(int, int), werden jede der Anweisungen aufrufen?

  1. Anweisung A ruft
  2. Anweisung B ruft