Designing Object Oriented Java Programming

Designing Object Oriented Java Programming

Design a class named Event to represent a social event such as a concert, a soccer match, tennis match or a cricket match. The class should contain the following characteristics:

  • Three integer constants named PENDING, ON, and DONE with the values 1, 2, and 3 to denote the status of the event
  • Another three integer constants named LOW, MEDIUM, and HIGH with the values 1, 2, and 3 to denote the popularity of the event
  • A private string data field named title that specifies the exact name of the event being held (eg. unknown, Arsenal vs Liverpool, India vs Sri Lanka, Nadal vs Federer), having a default value of unknown
  • A private string data field named category that specifies the type of the event being held (eg. concert, soccer, tennis, cricket etc.) having a default value of soccer
  • A private int data field named status that specifies whether the event is pending (not started yet), on (being played or presented) or done, (completed), having a default value of PENDING
  • A private int data field named popularity that specifies how popular a particular event is, having a default value of HIGH
  • The accessor (getter) and mutator (setter) methods for all three data fields (title, category, status and popularity) to facilitate access for reading and setting field values
  • A default constructor designed to initialise the fields of a new event object to default values as specified above
  • An overloaded constructor designed to initialise the fields of a new event object to specific values it receives as arguments
  • A method named toString() that returns a string representation of an event object


Draw the UML diagram for the class.

Write a test program TestEvent that creates at least three Event objects of various properties. Test all of the methods given in the Event class definition.

Ensure that both classes are appropriately documented throughout.