Ist es schwierig dieses Problem abzuwenden?
Nein—normalerweise werden alle Instanzvariablen in der Klassendefinition an einer Stelle deklariert und es ist leicht sie zu kontrollieren.
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
}
}
Welche der folgenden Aussagen ist richtig?
verarbeiteEinzahlung() Methode auf.verarbeiteEinzahlung() Methode auf.verarbeiteEinzahlung() Methode auf.verarbeiteEinzahlung() Methode auf.