Recall that Coordinate is a class defined with two double va

Recall that Coordinate is a class defined with two double variables x and y represenging the (x,y)-codinate of a point on the xy-plane. Suppose two coordinates c=(x,y) and c\'=(x\',y\') are compared to each other as follows: c is smaller than c\' if either x < x\' or ( x = x\' and y < y\') c is equal to c\' if x = x\' and y = y\' c is greater than c\' if either x > x\' or ( x = x\' and y > y\') According to this rule, write an instance method public int compareTo(Coordinate o) that compares this with o that returns -1, 0, and +!, respectively to the above three cases.

Solution

Coordinate.java

public class Coordinate {
   //Declaring instance variables
double x,y;

//Parameterized constructor
public Coordinate(double x, double y) {
   super();
   this.x = x;
   this.y = y;
}

//Setters and getters
public double getX() {
   return x;
}

public void setX(double x) {
   this.x = x;
}

public double getY() {
   return y;
}

public void setY(double y) {
   this.y = y;
}

//This method will compare the two coordinates
public int compareTo(Coordinate o)
{
   int val=0;
   if((this.x<o.x)|| (this.x==o.x && this.y<o.y))
   {
       val=-1;
   }
   else if(this.x==o.x && this.y==o.y)
   {
       val=0;
   }
   else if((this.x>o.x) || (this.x==o.x && this.y >o.y))
   {
       val=1;
   }
   return val;
}


/* toString() method is used to display
* the contents of an object inside it
*/
@Override
public String toString() {
   return \"Coordinate [x=\" + x + \", y=\" + y + \"]\";
}


}

____________________

Test.java

public class Test {

   public static void main(String[] args) {
       //Declaring variable
       int val;
      
       //Creating the Coordinate class object by passing the values as arguments
       Coordinate c1=new Coordinate(5.5,6.6);
      
       //Creating the Coordinate class object by passing the values as arguments
       Coordinate c2=new Coordinate(5.5,6.6);
      
       /* Calling the compareTo() method by passing
       * the coordinate class object as argument
       */
       val=c1.compareTo(c2);
      
       /* based on the return value of the method
       * displaying whether the Coordinates are equal,
       * greater than or less than.
       */
       if(val==-1)
           System.out.println(\":: C1 is Smaller than c2 ::\");
       else if(val==0)
           System.out.println(\":: C1 is equal to c2 ::\");
       else if(val==1)
           System.out.println(\":: C1 is greater than c2 ::\");
      
       //Creating the Coordinate class object by passing the values as arguments
       Coordinate c3=new Coordinate(4.5,5.5);
      
      
       /* Calling the compareTo() method by passing
       * the coordinate class object as argument
       */
       val=c2.compareTo(c3);
      
       /* based on the return value of the method
       * displaying whether the Coordinates are equal,
       * greater than or less than.
       */
       if(val==-1)
           System.out.println(\":: C2 is Smaller than c3 ::\");
       else if(val==0)
           System.out.println(\":: C2 is equal to c3 ::\");
       else if(val==1)
           System.out.println(\":: C2 is greater than c3 ::\");
      
       //Creating the Coordinate class object by passing the values as arguments
       Coordinate c4=new Coordinate(6.0,5.0);
      
       /* Calling the compareTo() method by passing
       * the coordinate class object as argument
       */
       val=c3.compareTo(c4);
      
       /* based on the return value of the method
       * displaying whether the Coordinates are equal,
       * greater than or less than.
       */
       if(val==-1)
           System.out.println(\":: C3 is Smaller than c4 ::\");
       else if(val==0)
           System.out.println(\":: C3 is equal to c4 ::\");
       else if(val==1)
           System.out.println(\":: C3 is greater than c4 ::\");
   }

}

____________________________

Output:

:: C1 is equal to c2 ::
:: C2 is greater than c3 ::
:: C3 is Smaller than c4 ::

___________Thank You

Recall that Coordinate is a class defined with two double variables x and y represenging the (x,y)-codinate of a point on the xy-plane. Suppose two coordinates
Recall that Coordinate is a class defined with two double variables x and y represenging the (x,y)-codinate of a point on the xy-plane. Suppose two coordinates
Recall that Coordinate is a class defined with two double variables x and y represenging the (x,y)-codinate of a point on the xy-plane. Suppose two coordinates

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site