Is this problem difficult to prevent?
No—usually all the instance variables are declared in one place in the class definition and it is easy to check them.
Overloading is when two or more methods of a class have the same name
but have different parameter lists.
When one of the methods is called (by main()
or by some other method)
it is clear which one is wanted by matching the actual parameter list to the
formal parameter lists.
Here is a further modification of the CheckingAccount
class:
class CheckingAccount { . . . . private int balance; . . . . void processDeposit( int amount ) { balance = balance + amount ; } void processDeposit( int amount, int serviceCharge ) { balance = balance + amount - serviceCharge; } }
Say that two processDeposit()
methods were needed:
The above code implements these requirements.
Here is an example main()
method that uses both methods:
class CheckingAccountTester { public static void main( String[] args ) { CheckingAccount bobsAccount = new CheckingAccount( "999", "Bob", 100 ); bobsAccount.processDeposit( 200 ); // statement A bobsAccount.processDeposit( 200, 25 ); // statement B } }