Ist es schwierig dieses Problem abzuwenden?

Eine gute Antwort wäre:

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 obenstehende 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
  }
}

FRAGE 12:

Welche der folgenden Aussagen ist richtig?

  1. Anweisung A ruft die erste verarbeiteEinzahlung() Methode auf.
  2. Anweisung A ruft die zweite verarbeiteEinzahlung() Methode auf.
  3. Anweisung B ruft die erste verarbeiteEinzahlung() Methode auf.
  4. Anweisung B ruft die zweite verarbeiteEinzahlung() Methode auf.
Inhaltsverzeichnis