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

Please complete this in Java. Design a class hierarchy (classes and/or interface

ID: 3830254 • Letter: P

Question

Please complete this in Java.

Design a class hierarchy (classes and/or interfaces) to support a program dealing with geographic objects. Support the following classes (at least) Countries States/Provinces Cities Boundary Segments Rivers Support the following operations, where applicable, plus any others that seem useful (arguments have been omitted, but you will have to include them area, capital o get Cities get Country 0 distance between cities boundary Length() total length of boundary neighbors objects sharing boundaries bordero the countries/states this separates Write out the class definitions, instance variables and method definitions. Some of the instance variables should probably be various kinds of Collections You do not need to implement the methods, but you should include comments inside each method that describe the approach you would take (alternately, you can actually implement them that might be simpler for some methods). Use interfaces and superclasses where appropriate. Supply javadoc comments for all classes, interfaces, and methods. The system you write should compile, even if it doesn't actually work (because the methods are just stubs with comments). Identify all of the classes as belonging to the package

Explanation / Answer

Code

//ourBoundary.java
import java.util.ArrayList;

//Class
public class ourBoundary
{
   //Variables
   private ourCoordinates starting;
    private ourCoordinates ending;
    private static int counter = 0;
    private int id;
    ArrayList<ourGeographical> Places;
  
   //Constructor
   ourBoundary(ourCoordinates starting, ourCoordinates ending)
    {
       //Initialize
       this.starting = starting;
        this.ending = ending;
        counter++;
        this.id = counter;
    }
  
   //Method ourBoundaryLength()
    public double ourBoundaryLength()
    {
        //Variables and initialization
       double distance;
        int X11 = starting.get_CoordinateX();
        int X22 = ending.get_CoordinateX();
        int Y11 = starting.get_CoordinateY();
        int Y22 = ending.get_CoordinateY();
        distance = Math.sqrt(Math.pow((X22 - X11), 2) + Math.pow((Y22 - Y11), 2));
      
       //Return
       return distance;
    }
  
   //Method definition
    public ArrayList<ourGeographical> ourBorderOf()
    {
        //Return
       return Places;
    }
  
   //Method definition
    void addPlace(ourGeographical Place)
    {
       Places.add(Place);
    }
  
   //Method definition
   int getId()
    {
        //Return
       return id;
    }

}

//ourCity.java
import java.util.ArrayList;
public class ourCity extends ourGeographical
{
    boolean isCityCapital;
    ourState State;
    ArrayList<ourRiver> ourRivers;
  
   //Constructor
   ourCity()
   {
        //Function call
       super();
        isCityCapital = false;
        ourRivers = new ArrayList<>();
    }
  
   //Constructor
   ourCity(ourCoordinates ourLocation)
   {
        //Function call
       super(ourLocation);
        isCityCapital = false;
        ourRivers = new ArrayList<>();
    }
  
   //Constructor
   ourCity(String myname)
   {
        //Function call
       super(myname);
        isCityCapital = false;
        ourRivers = new ArrayList<>();
    }
  
   //Constructor
   ourCity(String myname, ourCoordinates ourLocation)
   {
        //Function call
       super(myname, ourLocation);
        isCityCapital = false;
        ourRivers = new ArrayList<>();
    }
  
   //Constructor
   ourCity(String myname, ourCoordinates ourLocation, boolean isCityCapital)
   {
        //Function call
       super(myname, ourLocation);
        this.isCityCapital = isCityCapital;
        ourRivers = new ArrayList<>();
    }
  
   //Constructor
   ourCity(ourState State, String myname, ourCoordinates ourLocation, boolean isCityCapital)
   {
        //Function call
       super(myname, ourLocation);
        this.State = State;
        this.isCityCapital = isCityCapital;
        ourRivers = new ArrayList<>();
    }
  
   //Constructor
   ourCity(ourState State, String myname, ourCoordinates ourLocation, boolean isCityCapital, double ourArea)
   {
        //Function call
       super(myname, ourLocation, ourArea);
        this.State = State;
        this.isCityCapital = isCityCapital;
        ourRivers = new ArrayList<>();
    }
  
   //Method definition
   public static double distance(ourCity A, ourCity B)
   {
        double distance;
        geography.ourCoordinates coordinatesA = A.getCoordinates();
        geography.ourCoordinates coordinatesB = B.getCoordinates();
        int X11 = coordinatesA.get_CoordinateX();
        int X22 = coordinatesB.get_CoordinateX();
        int Y11 = coordinatesA.get_CoordinateY();
        int Y22 = coordinatesB.get_CoordinateY();
        distance = Math.sqrt(Math.pow((X22 - X11), 2) + Math.pow((Y22 - Y11), 2));
      
       //Return
       return distance;
    }
  
   //Method definition
    public boolean Capital()
   {
        //Return
       return isCityCapital;
    }
  
   //Method definition
   public void Capital(boolean isCityCapital)
   {
        //Return
       this.isCityCapital = isCityCapital;
    }
  
   //Method definition
   public ourState getState()
   {
        //Return
       return this.State;
    }
  
   //Method definition
   public void setState(ourState ourparentState)
   {      
       this.State = ourparentState;
    }
  
   //Method definition
   public void addRiver(ourRiver ourRiver)
   {
        ourRiver.addCity(this);
        ourRivers.add(ourRiver);
    }
  
   //Method definition
   public ArrayList<ourRiver> getRivers()
   {
        //Return
       return ourRivers;
    }
  
   //Method definition
   @Override
    public double ourArea()
   {
        //Return
       return super.ourArea();
    }
  
   //Method definition
   @Override
    public void ourArea(double ourArea)
   {
        //Return
       super.ourArea(ourArea);
    }
}

//ourCoordinates.java
public class ourCoordinates
{
    private int coordinate_X;
    private int coordinate_Y;
  
   //Constructor
   public ourCoordinates()
   {
        coordinate_X = -1;
        coordinate_Y = -1;
    }
  
   //Constructor
   public ourCoordinates(int x, int y)
   {
        coordinate_X = x;
        coordinate_Y = y;
    }
  
   //Method definition
   int get_CoordinateX()
   {
        //Return
       return coordinate_X;
    }
  
   //Method definition
   int get_CoordinateY()
   {
        //Return
       return coordinate_Y;
    }
  
   //Method definition
   void set_CoordinateX(int x)
   {
        coordinate_X = x;
    }
  
   //Method definition
   void set_CoordinateY(int y)
   {
        coordinate_Y = y;
    }
}

//ourRiver.java
import java.util.ArrayList;
public class ourRiver extends ourGeographical
{
    ArrayList<ourCity> ourCities;
  
   //Constructor
   public ourRiver()
    {
        //Function call
       super();
    }
  
   //Constructor  
    public ourRiver(String myname)
    {
        //Function call
       super(myname);
    }
  
   //Method definition
    void addCity(ourCity City)
    {
        ourCities.add(City);
    }
  
   //Method definition
    public ArrayList<ourCity> getCities()
    {
        //Return
       return ourCities;
   }
}

//ourGeographical.java
import java.util.ArrayList;
abstract class ourGeographical
{
    private geography.ourCoordinates ourCoordinates;
    private String myname;
    private ArrayList<ourBoundary> Boundaries;
    private double ourArea;
  
   //Constructor
    ourGeographical()
   {
        ourCoordinates = new ourCoordinates();
        myname = null;
    }
  
   //Constructor
   ourGeographical(String myname, ourCoordinates ourLocation, double ourArea)
    {
        this.ourCoordinates = ourLocation;
        this.myname = myname;
        this.ourArea = ourArea;
    }
  
   //Constructor
   ourGeographical(String myname, double ourArea)
    {
        this.ourCoordinates = null;
        this.myname = myname;
        this.ourArea = ourArea;
    }
  
   //Constructor
   ourGeographical(ourCoordinates ourLocation)
   {
        this.ourCoordinates = ourLocation;
        this.myname = null;
        this.ourArea = -1;
    }
  
   //Constructor
   ourGeographical(String myname)
   {
        this.ourCoordinates = null;
        this.myname = myname;
        this.ourArea = -1;
    }
  
   //Constructor
   ourGeographical(String myname, ourCoordinates ourLocation)
   {
        this.ourCoordinates = ourLocation;
        this.myname = myname;
        this.ourArea = -1;
    }
  
   //Method definition
   public ourCoordinates getCoordinates()
    {
        //Return
       return this.ourCoordinates;
    }
  
   //Method definition
    public void setCoordinates(ourCoordinates Coordinates)
    {
        ourCoordinates = Coordinates;
    }
  
   //Method definition
   int set_CoordinateX(int x)
   {
        int oldCoordinateX = ourCoordinates.get_CoordinateX();
        ourCoordinates.set_CoordinateX(x);
      
       //Return
       return oldCoordinateX;
    }
  
   //Method definition
   int setCoordinatesY(int y)
   {
        int oldCoordinateY = ourCoordinates.get_CoordinateX();
        ourCoordinates.set_CoordinateY(y);
      
       //Return  
       return oldCoordinateY;
    }
  
   //Method definition
   String getName()
   {
        //Return
       return myname;
    }
  
   //Method definition
   String setName(String myname)
   {
        String oldName = this.myname;
        this.myname = myname;
      
       //Return
       return oldName;
    }
  
   //Method definition
   public void addBoundary(ourBoundary Boundary)
   {
        Boundary.addPlace(this);
        Boundaries.add(Boundary);
    }
  
   //Method definition
   public ArrayList<ourGeographical> neighbors(ArrayList<ourGeographical> Places)
    {
        ArrayList<ourGeographical> Neighbors = new ArrayList<>();
      
       //Return
       return Neighbors;
    }
  
   //Method definition
    double ourArea()
    {
        //Return
       return ourArea;
    }
  
   //Method definition
    void ourArea(double ourArea)
    {
        this.ourArea = ourArea;
    }
}

//ourCountry.java
import java.util.ArrayList;
public class ourCountry extends ourGeographical
{
    ArrayList<ourState> ourStates;
  
    //Constructor
   ourCountry(String myname)
   {
        //Function call
       super(myname);
    }
  
   //Constructor
   ourCountry(String myname, double ourArea)
   {
        //Function call
       super(myname, ourArea);
    }
  
   //Method definition
   public void addState(ourState State)
   {
        State.setCountry(this);
        ourStates.add(State);
    }
  
   //Method definition
   public ArrayList<ourState> getStates()
   {
        //Return
       return ourStates;
    }
  
   //Method definition
   @Override
    public double ourArea()
    {
        //Return
       return super.ourArea();
    }
  
   //Method definition
   @Override
    public void ourArea(double ourArea)
    {
        //Function call
       super.ourArea(ourArea);
    }
}

//ourState.java
import java.util.ArrayList;
public class ourState extends ourGeographical
{
    //Variables
   ArrayList<ourCity> ourCities;
    ourCity ourCapitalCity;
    ourCountry ourparentCountry;
  
   //Constructor
   ourState()
   {
        ourCities = new ArrayList<>();
    }
  
   //Constructor
   ourState(String myname)
   {
        //Function call
       super(myname);
        ourCities = new ArrayList<>();
    }
  
   //Method definition
    public void addCity(String myname, ourCoordinates ourLocation, boolean isCityCapital)
   {
        ourCity newCity = new ourCity(this, myname, ourLocation, isCityCapital);
        if (isCityCapital)
       {
            ourCapitalCity = newCity;
            this.setCoordinates(newCity.getCoordinates());
        }
        ourCities.add(newCity);
    }
      
   //Method definition
    public void addCity(ourCity City, boolean isCityCapital)
   {
        City.Capital(isCityCapital);
        City.setState(this);
        if (isCityCapital)
       {
            ourCapitalCity = City;
            this.setCoordinates(City.getCoordinates());
        }
        ourCities.add(City);
    }
  
   //Method definition
    public void Capital(ourCity ourCapitalCity)
    {
        this.ourCapitalCity = ourCapitalCity;
    }
  
   //Method definition
    public ourCity Capital()
    {
        //Return
       return ourCapitalCity;
    }
  
   //Method definition
    public void setCountry(ourCountry ourparentCountry)
    {
        //Update
       this.ourparentCountry = ourparentCountry;
    }
  
   //Method definition
    public ArrayList<ourCity> getCities()
    {
        //Return
       return ourCities;
    }
  
   //Method definition
    public ourCountry getCountry()
    {
        //Return
       return ourparentCountry;
    }
  
   //Method definition
    @Override
    public double ourArea()
    {
        //Return
       return super.ourArea();
    }
  
   //Method definition
    @Override
    public void ourArea(double ourArea)
    {
        //Function call
       super.ourArea(ourArea);
    }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote