Due Date: 10/21, 11:59 pm
Total Points: 100
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.