Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Must be in GUI interface Ship, CruiseShip, and CargoShip Classes Design a Ship c

ID: 3621733 • Letter: M

Question

Must be in GUI interface

Ship, CruiseShip, and CargoShip Classes Design a Ship class that the following members:
• A field for the name of the ship (a string).
• A field for the year that the ship was built (a string).
• A constructor and appropriate accessors and mutators.
• A toString method that displays the ship’s name and the year it was built.

Design a CruiseShip class that extends the Ship class. The CruiseShip class should have the following members:
• A field for the maximum number of passengers (an int).
• A constructor and appropriate accessors and mutators.
• A toString method that overrides the toString method in the base class.

The CruiseShip class’s toString method should display only the ship’s name and the maximum number of passengers.

Design a CargoShip class that extends the Ship class. The CargoShip class should have the following members:
• A field for the cargo capacity in tonnage (an int).
• A constructor and appropriate accessors and mutators.
• A toString method that overrides the toString method in the base class.

The CargoShip class’s toString method should display only the ship’s name and the ship’s cargo capacity.

Demonstrate the classes in a program that has a Shiparray. Assign various Ship, CruiseShip, and CargoShip objects to the array elements. The program should then step through the array, calling each object’s toString method.

Explanation / Answer

//Design a Ship class that the following members:
public class Ship
{
//• A field for the name of the ship (a string).
private String name;

//• A field for the year that the ship was built (a string).
private String yearBuilt;

//• A constructor and appropriate accessors and mutators.
public Ship(String name, String yearBuilt)
{
this.name = name;
this.yearBuilt = yearBuilt;
}

public void setName(String n)
{
name = n;
}
public String getName()
{
return name;
}

public void setYearBuilt(String y)
{
yearBuilt = y;
}
public String getYearBuilt()
{
return yearBuilt;
}

//• A toString method that displays the ship’s name and the year it was built.
public String toString()
{
return name + " " + yearBuilt;
}
}

//Design a CruiseShip class that extends the Ship class. The CruiseShip class should have the following members:
public class CruiseShip extends Ship
{
//• A field for the maximum number of passengers (an int).
private int maxPassengers;

//• A constructor and appropriate accessors and mutators.
public CruiseShip(String name, String yearBuilt, int maxPassengers)
{
super(name, yearBuilt);
this.maxPassengers = maxPassengers;
}

public void setMaxPassengers(int m)
{
maxPassengers = m;
}
public int getMaxPassengers()
{
return maxPassengers;
}

//• A toString method that overrides the toString method in the base class.
//The CruiseShip class’s toString method should display only the ship’s name and the maximum number of passengers.
public String toString()
{
return getName() + " Max passengers: " + maxPassengers;
}
}

//Design a CargoShip class that extends the Ship class. The CargoShip class should have the following members:
public class CargoShip extends Ship
{
//• A field for the cargo capacity in tonnage (an int).
private int capacity;

//• A constructor and appropriate accessors and mutators.
public CargoShip(String name, String yearBuilt, int capacity)
{
super(name, yearBuilt);
this.capacity = capacity;
}

public void setCapacity(int c)
{
capacity = c;
}
public int getCapacity()
{
return capacity;
}

//• A toString method that overrides the toString method in the base class.
//The CargoShip class’s toString method should display only the ship’s name and the ship’s cargo capacity.
public String toString()
{
return getName()+ " Cargo capacity: " + capacity;
}
}