Contract design

Implement a use defined class called BankAccount whose objects represents real world

bank account entities. Each bankaccount object at a minimum should have a balance field.

Supply methods that allow deposit, withdraw and checking balance operations and other

necessary operations as you see fit. Also, implement a clone( ) method that creates a copy

of bankaccount object. Overwrite the equals( ) method of the Object class that helps to

check the contents of two bankaccount objects.

Ensure that you apply Design by Contract principles (preconditions/post conditions … )

and Defensive Programming techniques (assertions, exception handling …) while

implementing this user defined class. Make sure to include the preconditions and

postconditions, exceptions etc. as part of comments in the code.

Next create a test class that demonstrates the defensive mechanisms that you have put

in place in the use defined class.

Provide a write up in detail describing the Design by Contract principles and Defensive

Programming techniques you have used in your implementation.

Things to Turn in:

 Copy and paste your code in courier new font of both the user defined

class as well as test program

 Screen shots of the run of the test program with explanations if any on the output

 Write up on application of design by contract and defensive programming