Question: Java: Create the four data classes as above. Do NOT add any attributes or methods that don't appear in the UML diagrams. Create another, executable
Java:

Create the four data classes as above. Do NOT add any attributes or methods that don't appear in the UML diagrams. Create another, executable class named ShipTest as shown below to test these classes.
In ShipTest:
- make two objects with declared type Ship but actual type CruiseShip.
- make one object of declared type Ship but actual type CargoShip.
- make one object of declared type CargoShip and actual type CargoShip.
- make a ship of declared type WarShip and actual type WarShip.
- using the array initializer syntax, code all of these ships into an array of type Ship named fleet.
- code a for loop that processes the fleet array to show display all ships and their data.
- use a method of class Arrays to create an ArrayList of type Ship from the fleet array.
- pass this ArrayList to a method named shipShow that also displays all ships and returns an integer.
- report the value of the integer returned by shipShow.
In the shipShow method:
- from the ArrayList, remove the CargoShip that was declared as type Ship.
- add another WarShip instance to the ArrayList.
- use a foreach loop to process the ArrayList and print the data for each ship.
- count the number of ships that are not afloat. Return this count to main for printing.
SAMPLE OUTPUT
AN ARRAY OF SHIPS IN MAIN
Ship name: Magic, year launched: 1998, is afloat: true
2700 passenger capacity, operating in the Caribbean
Ship name: Titanic, year launched: 1912, is afloat: false
1300 passenger capacity, operating in the Atlantic Ocean
Ship name: El Faro, year launched: 1974, is afloat: false
Capacity of containers is 391
Ship name: Seawise Giant, year launched: 1979, is afloat: false
Capacity of crude oil is 564763
Ship name: USS Nimitz, year launched: 1972, is afloat: true
Type: super carrier, operated by United States Navy
ARRAYLIST OF SHIPS FROM A METHOD
Ship name: Magic, year launched: 1998, is afloat: true
2700 passenger capacity, operating in the Caribbean
Ship name: Titanic, year launched: 1912, is afloat: false
1300 passenger capacity, operating in the Atlantic Ocean
Ship name: Seawise Giant, year launched: 1979, is afloat: false
Capacity of crude oil is 564763
Ship name: USS Nimitz, year launched: 1972, is afloat: true
Type: super carrier, operated by United States Navy
Ship name: USS John Warner, year launched: 2015, is afloat: true
Type: attack submarine, operated by United States Navy
2 of these ships sank!
> Ship chap 11new e name: String year: int isAfoat: boolean Ship(String, int, boolean) isAfloat():boolean setAfloat(boolean):void getName():String getYear():int otoString(): String > Cruise Ship chap 11new - passengers: int zone: String Cruise Ship(String, int, boolean int, String) getPassengers():int getZone(): String otoString: String > WarShip chap 11new e type: String nation: String WarShip(String, int, boolean, String, String) toString(): String > Cargo Ship chap 11new - cargo: String capacity: int CargoShip(String, int, boolean, String, int) toString(): String getCapacity:int
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
