Files
G4G0-1/Semester 1/Programming 1/Week 3/Homework 1/House.java
2024-01-15 20:14:10 +00:00

238 lines
6.2 KiB
Java

/**
* This class is an imitation of a house for sale in a real estate business. It allows for the buying, selling and modification of the house.
*
* @author George Wilkinson
* @version 6/10/23
*/
public class House
{
// instance variables
private String typeOfHouse;
private String address;
private int initialPurchasePrice;
private int purchasePrice;
private int homeEnergyRating;
private char councilTaxBand;
private String owner;
private int numberOfOwners;
private boolean hasGarage;
/**
* Constructor for objects of class House
*/
public House( String type, String homeAddress, int initPrice, int energyRating, char taxBand, boolean garage)
{
// initialise house attriutes
typeOfHouse = type;
address = homeAddress;
initialPurchasePrice = initPrice;
homeEnergyRating = energyRating;
councilTaxBand = taxBand;
hasGarage = garage;
purchasePrice = 0;
owner = "None";
numberOfOwners = 0;
checkHomeEnergyRating();
}
/**
* Simulates changing home efficiency value.
* Takes @homeEnergyRating and replaces with a user input value @newHomeEnergyRating, then
* prints a confirmation message to the output log.
*/
public void goingGreener( int newHomeEnergyRating )
{
homeEnergyRating = newHomeEnergyRating; //Update homeEnergyRating variable's value
}
/**
* Returns the value of @typeOfHouse to the user.
*/
public String getType()
{
return typeOfHouse;
}
/**
* Returns the value of @address
*/
public String getAddress()
{
return address;
}
/**
* Returns the value of @initalPurchasePrice
*/
public int getInitialPurchasePrice()
{
return initialPurchasePrice;
}
/**
* Returns the value of @homeEnergyRating
*/
public int getEnergyRating()
{
return homeEnergyRating;
}
/**
* Returns the value of @councilTaxBand
*/
public char getTaxBand()
{
return councilTaxBand;
}
/**
* Returns the value of @hasGarage
*/
public boolean getGarage()
{
return hasGarage;
}
/**
* Returns the value of @purchasePrice
*/
public int getPurchasePrice()
{
return purchasePrice;
}
/**
* Returns the value of @owner
*/
public String getOwner()
{
return owner;
}
/**
* Returns the value of @numberOfOwners
*/
public int getNumberOfOwners()
{
return numberOfOwners;
}
/**
* Set @typeOfHouse to a user-input value
*/
public void setType( String type )
{
typeOfHouse = type; //Update the type variable's value
System.out.println( "Type of this house is now: " + typeOfHouse );
}
/**
* Set @address to a user-input value
*/
public void setAddress( String newAddress )
{
address = newAddress; //Update the address variable's value
System.out.println( "Address of this house is now: " + address );
}
/**
* Set @councilTaxBand to a user-input value
*/
public void setCouncilTaxBand( char newBand )
{
councilTaxBand = newBand; //Update the Tax Band variable's value
System.out.println( "Council Tax Band of this house is now: " + councilTaxBand );
}
/**
* Set @hasGarage to a user-input value
*/
public void setGarage( boolean garage )
{
hasGarage = garage; //Update the garage variable's value
System.out.println( "Garage state of this house is: " + hasGarage );
}
/**
* Set @owner to a user-input value
*/
public void setOwner( String newOwner )
{
owner = newOwner; //Update the owner variable's value
System.out.println( "Owner of this house is now: " + owner );
}
/**
* Set @purchasePrice to a user-input value
*/
public void setPurchasePrice( int newPurchasePrice )
{
purchasePrice = newPurchasePrice; //Update the purchasePrice variable's value
System.out.println( "House has been purchased for: £" + purchasePrice );
}
/**
* Set @numberOfOwners to a user-input value
*/
public void setNumberOfOwners( int newNumberOfOwners )
{
numberOfOwners = newNumberOfOwners;
System.out.println( "Number of Owners of this house is now: " + numberOfOwners );
}
/**
* Print all fields of object for the user.
*/
public void printDetails()
{
System.out.println( "House type: " + typeOfHouse );
System.out.println( "Address: " + address );
System.out.println( "Original purchase price in pounds: " + initialPurchasePrice );
System.out.println( "Current price in pounds: " + purchasePrice );
System.out.println( "Home energy rating: " + homeEnergyRating );
System.out.println( "Council Tax Band: " + councilTaxBand );
System.out.println( "Number of owners to date: " + numberOfOwners );
System.out.println( "Current owner: " + owner );
}
/**
* Print to log when @homeEnergyRating is above or below a threshold of 3.
*/
public void checkHomeEnergyRating()
{
if( homeEnergyRating < 3 )
{
System.out.println( "Be aware that extra green taxes may be imposed on this house" );
}
else
{
System.out.println( "This house will not be subject to extra taxes" );
}
}
/**
* Simulates selling the house by calling the setOwner() and setPurchasePrice() methods.
*/
public void sell( String newOwner, int newPurchasePrice )
{
setOwner( newOwner ); //Call the setOwner method to set the purchaser's name
setPurchasePrice( newPurchasePrice ); //Call the setPurchasePrice method to set the buy price of the house after it is sold.
setNumberOfOwners( numberOfOwners + 1 ); //Call the setNumberOfOwners mutator to increment the owner count after selling.
}
}