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

160 lines
3.7 KiB
Java

/**
* Represents a user of a holiday website.
*
* @George Wilkinson
* @13/11/23
*/
public class Member
{
// Creates a String for variable @email.
private String email;
// Creates an integer for variable @membershipNumber.
private int membershipNumber;
// Creates a boolean for variable @loggedInStatus.
private boolean loggedInStatus;
//Creates a new pointer to a Holiday object.
private Holiday holiday;
// Creates a new pointer to a Website object.
private Website website;
/**
* Default Constructor for objects of Class Member.
*/
public Member()
{
email = "john.doe@topstravel.co.uk";
membershipNumber = 1;
loggedInStatus = false;
}
/**
* Constructor for objects of class Member
*/
public Member( String email, int membershipNumber )
{
// initialise instance variables
this.email = email;
this.membershipNumber = membershipNumber;
loggedInStatus = false;
}
/**
* Returns the value of @email.
*/
public String getEmail()
{
return email;
}
/**
* Returns the value of @membershipNumber.
*/
public int getMembershipNumber()
{
return membershipNumber;
}
/**
* Returns the value of @loggedInStatus.
*/
public boolean getLoggedInStatus()
{
return loggedInStatus;
}
/**
* Returns the current selected holiday object.
*/
public Holiday getHoliday()
{
return holiday;
}
/**
* Returns the current logged in website object.
*/
public Website getWebsite()
{
return website;
}
/**
* Replaces the value of @email with a new value.
*/
public void setEmail( String email )
{
this.email = email;
}
/**
* Replaces the value of @membershipNumber with new value.
*/
public void setMembershipNumber( int membershipNumber )
{
this.membershipNumber = membershipNumber;
}
/**
* Replaces the value of @loggedInStatus with new value.
*/
public void setLoggedInStatus( boolean loggedInStatus )
{
this.loggedInStatus = loggedInStatus;
}
/**
* Sets the object pointed to by the member.
*/
public void setWebsite( Website website )
{
this.website = website;
}
/**
* Sets the object pointed to by the member.
* Currently used to clear the member's checkout after paying.
*/
public void setHoliday( Holiday holiday )
{
this.holiday = holiday;
}
/**
* Allows member to select a holiday object, provided they are logged into a website.
*/
public void selectHoliday( Holiday holiday )
{
if( loggedInStatus )
{
this.holiday = holiday;
System.out.println( "member ID: " + membershipNumber );
System.out.println( "holiday ref number: " + holiday.getRefNumber() );
System.out.println( "holiday type: " + holiday.getType() );
System.out.println( "holiday price: £" + holiday.getPrice() );
}
else {
System.out.println( "You are not logged in" );
}
}
/**
* Allows member to pay for a holiday, provided they are logged in, passing itself to website.checkout().
*/
public void payForHoliday()
{
if( loggedInStatus )
{
//Pass current member to the checkout method of website
website.checkout( this );
}
else {
System.out.println( "You are not logged in" );
}
}
}