SHARE
SPREAD
HELP

The Tradition of Sharing

Help your friends and juniors by posting answers to the questions that you know. Also post questions that are not available.


To start with, Sr2Jr’s first step is to reduce the expenses related to education. To achieve this goal Sr2Jr organized the textbook’s question and answers. Sr2Jr is community based and need your support to fill the question and answers. The question and answers posted will be available free of cost to all.

 

#
Authors:
Stuart Reges, Marty Stepp
Chapter:
Inheritance And Interfaces
Exercise:
Exercises
Question:7 | ISBN:9780136091813 | Edition: 2

Question

Implement a class called StudentAdvanceTicket to represent tickets purchased in advance by students. A student advance ticket is constructed with a ticket number and with the number of days in advance that the ticket was purchased.Student advance tickets purchased 10 or more days before the event cost $15, and student advance tickets purchased fewer than 10 days before the event cost $20 (half of a normal advance ticket). When a student advance ticket is printed, the String should mention that the student must show his or her student ID (for example,"Number: 17, Price: 15.0 (ID required)").

TextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbook

Answer

package Inheritance;

public class Ticket {

	int ticketNumber;
	int ticketPrice;

	public Ticket(int ticketNumber) {

		this.ticketNumber = ticketNumber;

	}

	public Ticket() {

	}

	public int getTicketNumber() {
		return ticketNumber;
	}

	public void setTicketNumber(int ticketNumber) {
		this.ticketNumber = ticketNumber;
	}

	public int getTicketPrice() {
		return ticketPrice;
	}

	public void setTicketPrice(int ticketPrice) {
		this.ticketPrice = ticketPrice;
	}

}

// AdvanceTicket Subclass was created with the parent class Ticket
public class AdvanceTicket extends Ticket {

	int ticketNumber;
	int numberOfDaysBeforeEvent;
	int price = 40;

	public int getTicketNumber() {
		return ticketNumber;
	}

	public void setTicketNumber(int ticketNumber) {
		this.ticketNumber = ticketNumber;
	}

	public int getPrice() {
		return price;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	public int getNumberOfDaysBeforeEvent() {
		return numberOfDaysBeforeEvent;
	}

	public void setNumberOfDaysBeforeEvent(int numberOfDaysBeforeEvent) {
		this.numberOfDaysBeforeEvent = numberOfDaysBeforeEvent;
	}

	public AdvanceTicket(int ticketNumber, int daysBeforeEvent) {
		this.ticketNumber = ticketNumber;
		this.numberOfDaysBeforeEvent = daysBeforeEvent;
	}

	public AdvanceTicket() {

	}

	@Override
	public String toString() {

		if (this.getNumberOfDaysBeforeEvent() > 10)
			this.setPrice(30);

		return "Ticket number: " + this.getTicketNumber() + ", price: " + this.getPrice() + "." + " purchased "
				+ this.getNumberOfDaysBeforeEvent() + " days before the event. \n";
	}


}

// subclass for the AdvanceTicket was creted
public class StudentAdvanceTicket extends AdvanceTicket {

	int price = 20;
	int ticketNumber;
	int numberOfDaysBeforeEvent;

	public int getTicketNumber() {
		return ticketNumber;
	}

	public void setTicketNumber(int ticketNumber) {
		this.ticketNumber = ticketNumber;
	}

	public int getPrice() {
		return price;
	}
	
	

	public int getNumberOfDaysBeforeEvent() {
		return numberOfDaysBeforeEvent;
	}

	public void setNumberOfDaysBeforeEvent(int numberOfDaysBeforeEvent) {
		this.numberOfDaysBeforeEvent = numberOfDaysBeforeEvent;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	public StudentAdvanceTicket(int ticketNumber, int days) {
		this.ticketNumber = ticketNumber;
		this.numberOfDaysBeforeEvent = days;

	}

	public StudentAdvanceTicket() {

	}

    // override the toString method to print the values in tickets
	@Override
	public String toString() {
		if (this.getNumberOfDaysBeforeEvent() > 10)
			this.setPrice(15);

		return "Ticket number: " + this.getTicketNumber() + ", price: " + this.getPrice() + "." + " purchased "
				+ this.getNumberOfDaysBeforeEvent() + " days before the event. (ID required) \n";
	}

	public static void main(String args[]) {


        // initialize the StudentAdvanceTicket object
		StudentAdvanceTicket ad = new StudentAdvanceTicket(86, 12);
		StudentAdvanceTicket ad1 = new StudentAdvanceTicket(24, 4);
		StudentAdvanceTicket ad2 = new StudentAdvanceTicket(37, 15);
		StudentAdvanceTicket ad3 = new StudentAdvanceTicket(31, 2);

		System.out.println(ad);
		System.out.println(ad1);
		System.out.println(ad2);
		System.out.println(ad3);

	}

}
Output:

Ticket number: 86, price: 15. purchased 12 days before the event. (ID required) 

Ticket number: 24, price: 20. purchased 4 days before the event. (ID required) 

Ticket number: 37, price: 15. purchased 15 days before the event. (ID required) 

Ticket number: 31, price: 20. purchased 2 days before the event. (ID required) 

 

0 0

Discussions

Post the discussion to improve the above solution.