Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

write a java software the will: Part I Various events can be described as follows: A Event class with the following: the year (XXXX: int

write a java software the will:

Part I

Various events can be described as follows:

A Event class with the following: the year (XXXX: int type), month (YY:int type), and the

number of cities where it will be held (int type).

A Festival is an Event that in addition has the following: a name (String type- such as Arts, Beer,

Comedy, Film, Fire, Folk...etc), ticket price (double type), and duration:# of_days (int type).

A Culturalfiesta is a Festival that in addition has the following: the number of spoken languages

(int type), which indicates the maximum languages spoken in this kind of festival.

A Musicfiesta is a Festival that in addition it has the following: number of bands (int type).

A SportCompetition is an Event that in addition has the following: number of activitie (int type) and season name (enumeration type that can be: summer, fall, winter, spring)

A fair is an Event that in addition has the following: The number of exibitors (int type), and type (enumerator type that can be : career, science, trade, travel)

Part I:

Draw a UML representation for the above mentioned classes hierarchy. Your representation must also be accurate in terms of UML representation of the different entities and the relation between them. You must use a software to draw your UML diagrams (no hand-writing/drawing is allowed).

Write the implementation of the above mentioned classes using inheritance and according to the specifications and requirements given below:

You must have 4 different Java packages for the classes. The first package will include the Event class. The second package will include the Festival, Culturalfiesta, and Musicfiesta classes. The third package will include the SportCompetition class and the last package will include the Fair class.

For each of the classes, you must have at least three constructors, a default constructor, a parametrized constructor (which will accept enough parameters to initialize ALL the attributes of the created object from this class) and a copy constructor. For instance the parametrized constructor of the Culturalfiesta class must accept 7 parameters to initialize the year, month, #number_ of_cities, name, ticket price, duration, and #of languages.

An object creation using the default constructor must trigger the default constructor of its ancestor classes, while creation using parametrized constructors must trigger the parametrized constructors of the ancestors.

For each of the classes, you must include at least the following methods: accessors, mutators, toString() and equals() methods (notice that you are always overriding the last two methods).

The toString() method must display clear description and information of the object (i.e This arts Culturalfiesta will be held in 2018, 07 in 3 cities, for 7 days, the ticket will cost 39.75$, and has 2 spoken language).

The equals() method must first check if the passed object (to compare to) is null and if it is of a different type than the calling object. The method would clearly return false if any of these conditions is true; otherwise the comparison of the attributes are conducted to see if the two objects are actually equal. You need to add a comment indicating how effective these null verifications inside the method will be in relation to protecting your program from crashing!

For all classes, with the exception of the Festival class, you are required to use the appropriate packages access rights. For the Festival class for example, you are required to use protected access rights.

When accessing attributes from a base class, you must take full advantage of the permitted rights. For instance, if you can directly access an attribute by name from a base class, then you must do so instead of using a public method from that base class to access the attribute.

3. Write a driver program ( that contains the main() method) that would utilize all of your classes. The driver class can be in a separate package or in any of the already existing four packages. In the main() method you must:

Create various objects from the 6 classes, and display all their information using the toString() method.

Test the equality of some to the created objects using the equals() method.

Create an array of 10 Event objects and fill that array with various objects from the 6

classes (each class must have at least one entry in that array).

Trace(search) that array to find the object that:

(a) Hastheleast/mostnumberofcities

(b) Arehappeningonthesameyear(e.g.2018) For both (a) and (b) display all information of the objects along with their location (index) in the array.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Learning MySQL Get A Handle On Your Data

Authors: Seyed M M Tahaghoghi

1st Edition

0596529465, 9780596529468

More Books

Students also viewed these Databases questions