Create an efficient Object-Oriented Java application that maintains information about college roommates who are renting a house together, for their realtor.
When a house is chosen by the roommates, the user will provide information for it. To allow extensibility, a house object can be created with no information available, the address of the house only or the address of the house, monthly rent and security deposit.
The House class definition should include following instance variables:
- Address
- Number of roommates
- Monthly rent
- Security Deposit
The above class definition should also include following instance methods:
- Validating mutators for the numeric instance variables that are to receive values from the user (including monthly rent - must be between the minimum of $400 and the maximum $2500, and the security deposit - must be between $250 and the monthly rent of the house)
- addARoommate(), that will allow the user to include an additional roommate on the lease (not to exceed the 4 roommate limit - this is a maximum imposed by the realtor for any house)
- Accessors for the instance variables, as well as a toString() method to gather all pertinent information.
- Amount owed by each roommate for individual monthly rent
- Amount owed by each roommate for the entire 12 month lease (which includes their portion of the Security Deposit)
The Realtor application that implements the class described above should prompt the user for the house's address, monthly rent and security deposit. Then the application should process as many roommates (up to 4) the user chooses. The output should include the information on the house (Address, Monthly Rent, and Security Deposit and Total Yearly Income) as well as the number of roommates and their monthly and total financial obligation.
Only one house object is to be manipulated by the application.