Ist es schwierig dieses Problem abzuwenden?

Eine gute Antwort könnte sein:

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 gemeint ist.

Hier ist eine weitere Änderung der KontoChecker Klasse:

class KontoChecker
{
  . . . .
  private int    kontoStand;

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

  void  verarbeiteEinzahlung( int betrag, int serviceCharge )
  {
    kontoStand = kontoStand + betrag - serviceCharge;
  }

}

Angenommen, dass zwei verarbeiteEinzahlung() Methoden gebraucht werden:

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

class KontoTester
{
  public static void main( String[] args )
  {
    KontoChecker bobsKonto = new KontoChecker( "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.