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
principles/techniques.