Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

java language please answer the question COMPLETELY Thank you so much Purpose: The purpose of this assignment is to practice class inheritance, and other Object

java language

please answer the questionCOMPLETELY

Thank you so much

image text in transcribedimage text in transcribedimage text in transcribedimage text in transcribed
Purpose: The purpose of this assignment is to practice class inheritance, and other Object Oriented Programming concepts such as constructors, access rights, method overriding, etc. The assignment would also allow you to practice the notion of package creation. This assignment contains two parts. You need to complete part I to be able to do part II. You should however handle each part as if it was a separate assignment (i.e. you should not modify Part I after finishing with it; rather create a copy of that part and use it to create Part II. This is needed so that you can finally submit both parts! Part I Various flying objects can be described as follows: An Airplane class, which has the following attriobutes: a brand (String type), price (double type) and horse power (int type). A Helicopter is an Airplane that additionally has the following: a number of cylinders (int type), a creation year (int type), and a passenger capacity (int type). A Quadcopter, is a Helicopter that additionally has the following: max flying speed (int type), which indicates its maximum moving speed. A Multirotor is a Helicopter that additionally has the following: number of rotors (int type), which indicates its number of rotors/blades that it has. A UAV (Unmanned aerial vehicle / Drone) class has the following attributes: weight (double type), and price (double type).- An AgriculturalDrone (which is used for crop production) is UAV that additionally has the following: brand (Sting type), and carry capacity (int type). - A MAV (Micro Air Vehicle), is a miniature UAV that has a size restriction (and can be as small as few centimeters. It has the following: model (String type) and size (double type).Part I: 1. Draw a UML representation for the hierarchy of the above-mentioned classes. 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) 2. Write the implementation of the above-mentioned classes using inheritance and according to the pecifications and requirements given below You must have 5 different Java packages for the classes. The first package will include the Airplane class. The second package will include the Helicopter, and the Quadcopter classes. The third package will include the Multirotor class. The fourth package will include UAV class, and the last package will include the AgriculturalDrone and MAV classes. For each of the classes, you must have at least three constructors, a default constructor, a parametrization (which will accept enough parameters to initialize ALL the attributes of the created object from this class) and a copy constructor. For instance, the parametriza constructor of the Quadcopter class must accept 7 parameters to initialize the brand, the price, the horse power, the number of cylinders, the creation year, the passenger capacity, and the maximum flying speed. . An object creation using the default constructor must trigger the default constructor of its ancestor classes, while creation using parametrizations must trigger the parametrizations of the ancestors. For each of the classes, you must include at least the following methods: accessors, mutators, to String() and equals() methods (notice that you are always overriding the last two methods). The toString() method must return clear description and information of the object (i.e "This Agricultural Drone is manufactured by Agridrones. It weights 340 pounds, and costs 98000$. It can carry up to 25 Kg....). The equals() method must first verify 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 is conducted to see if the two objects are actually equal. Two objects are equal if the values of all their attributes are equal. . For all classes you must use the appropriate access rights, which allow most ease of use/access without compromising security. Do not use most restrictive rights unless they make sense!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 calling 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 7 classes, and display all their information (you must take advantage of the to String() method). Test the equality of some of the created objects using the equals() method. Create an array of 15 to 20 these flying objects (HINT: Do you need to add something else to the classes described above? If so; go ahead with that!) and fill that array with various objects from these classes (each class must have at least one entry in that array). Trace(search) that array to find the two objects that have the least expensive price (that is least expensive and second least expensive). Display all information of these two objects along with their location (index) in the array. Part II For the requirements of this part, you need to modify your implementation from Part I as follows: 1. The classes from Part I must now have the most restrictive (secure/protective) access rights to their attributes. Adjust your implementation from Part I accordingly, and comment on the decision about using restricted access (i.e. what are the trade-offs). 2. In the driver program of this part, you need to add to the one from part I, another static method (added it above the main() method), called copyFlyingObjects. The method will take as imput an array of these objects (the array can be of any size) and returns a copy of that array. That is to say, the method needs to create an array of the same length as the passed array, copies all objects from the passed array to a new array, then returns the new array. Your copy of the objects must use the copy constructors of the different listed classes. However, do NOT attempt to find the object type inside the copy constructors and Do NOT use clone(). 3. In the driver program, create an array of 15 to 20 objects (must have at least one from each of the classes), then call the copyFlyingObjects() method to create a copy of the that array. 4. Display the contents of both arrays, then add some comments indicating whether or not the copying is correct. If not; you need to explain why it has not been successful or as you might have expected

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

Modern Dental Assisting

Authors: Doni Bird, Debbie Robinson

13th Edition

978-0323624855, 0323624855

Students also viewed these Programming questions

Question

List three aspects of product line pricing.

Answered: 1 week ago