Your task is to implement an efficient object oriented (OO) application for a realtor to
maintain information about college roommates renting a house together.
The house class definition should include the following instance variables:
1. Address (probably broken into one or more instance variables)
2. Number of roommates
3. Monthly rent
4. Security deposit
The House class definition should include the following instance methods:
1. Mutators (with validation)
a. Monthly rent can only be set between $400 and $2500.
b. Security deposit must be between $250 and the monthly rent.
2. Add a roommate method (addARoomate()) that will allow the user to include an
additional roommate on the lease.
a. No more than 4 roommates are allowed for a particular house.
3. Accessors for the instance variables
4. Override the toString() method to gather all pertinent information. The toString()
method should print out all details of the house in a clean format.
5. A method to retrieve the amount owed by each roommate for individual monthly rent
6. A method to retrieve the amount owed by each roommate for the entire 12 month
lease (taking into account their security deposit)
The realtor would start the program, and begin entering information about a particular
home. To allow extensibility, the realtor can create a new house listing with:
1. no information available
2. only the address of the house
3. monthly rent and security deposit
Next, the end-user should be prompted for the following information ONLY IF the values
weren’t submitted when the realtor created the house listing.
1. House address
2. Monthly rent
3. Security deposit
Then the program should allow the user to process roommates (up to 4).
*Tip: You should prompt the user first, to ask how many roommates will be processed
and then process the number of roommates the realtor enters (up to 4).
After you finish entering each roommate’s contribution, you should call the overloaded
toString() method that prints out all pertinent details of the House (i.e. Address, Monthly
Rent, Security Deposit, Yearly Income, Number of Roommates, Student Information -
including their monthly and total obligation).
* Note: You should only construct and manipulate one House object.