In: Computer Science
 In this class add Comparable interface. In the driver program create a few objects and In the driver program create a few objects and compare them . then create a list of those objects and sort them .A Quadratic is bigger than another Quadratic if it opens faster
package pack2;
/**
 * This is a program for defining a quadratic equation
 * @author sonik
 */
public class Quadratic {
        public int coeffX2 = 0;
        public int coeffX = 0;
        public int constant = 0;
        
        /**
         * This a default constructor to create object with no parameter
         */
        public Quadratic() {
                
        }
        
        /**
         * This a parameter constructor to create object with parameter
         * @param coeffX2 This is the coefficient of X^2 in quadratic equn
         * @param coeffX This is the coefficient of X in quadratic equn
         * @param constant This is the constant in quadratic equn
         */
        
        public Quadratic(int coeffX2, int coeffX, int constant) {
                this.coeffX2 = coeffX2;
                this.coeffX = coeffX;
                this.constant = constant;
        }
        
        /**
         * This a getter method for variable coeffX2
         * @return int This returns the coefficient of x^2
         */
        
        public int getCoeffX2() {
                return coeffX2;
        }
        
        /**
         * This a setter method for variable coeffX2
         * @param coeffX2 This sets the coefficient of X^2 of quadratic equation
         */
        public void setCoeffX2(int coeffX2) {
                this.coeffX2 = coeffX2;
        }
        
        /**
         * This a getter method for variable coeffX
         * @return int This returns the coefficient of x
         */
        public int getCoeffX() {
                return coeffX;
        }
        
        /**
         * This a setter method for variable coeffX
         * @param coeffX This sets the coefficient of X of quadratic equation
         */
        public void setCoeffX(int coeffX) {
                this.coeffX = coeffX;
        }
        
        /**
         * This a getter method for constant term
         * @return int This returns the constant term
         */
        public int getConstant() {
                return constant;
        }
        
        /**
         * This a setter method for constant
         * @param constant This sets the constant of quadratic equation
         */
        public void setConstant(int constant) {
                this.constant = constant;
        }
        
        /**
         * This a toString method 
         * @return String This return a string showing equation in form ax^2+bx+c
         */
        
        @Override
        public String toString() {
                return "Quadratic ["+coeffX2 + "X^2 +" + coeffX + "X +" + constant +"]";
        }
        
        /**
         * This is a method to find slope at a given x 
         * @param a This is the point where slope is to be calculated
         * @return int This returns the slope at point x
         */
        public int findSlope(int a) {
                int slope = 2*coeffX2*a + coeffX;
                return slope;
        }
}
DRIVER.java
package pack2;
public class Driver {
        public static void main(String[] args) {
                Quadratic q1 = new Quadratic(5,7,10);
                System.out.println(q1);
                
                Quadratic q2 = new Quadratic();
                q2.setCoeffX2(4);
                q2.setCoeffX(8);
                q2.setConstant(20);
                
                System.out.println("Coeff of X^2 : "+ q2.getCoeffX2());
                System.out.println("Coeff of X : "+ q2.getCoeffX2());
                System.out.println("Constant Term : "+ q2.getConstant());
                
                System.out.println(q2);
                System.out.println("Slope at x = 5 is : "+q2.findSlope(2));
        }
}
Here are the 2 updated class, ======================================================================= package pack2;
/**
 * This is a program for defining a quadratic equation
 *
 * @author sonik
 */
//In this class add Comparable interface.
public class Quadratic implements Comparable<Quadratic> {
    public int coeffX2 = 0;
    public int coeffX = 0;
    public int constant = 0;
    /**
     * This a default constructor to create object with no parameter
     */
    public Quadratic() {
    }
    /**
     * This a parameter constructor to create object with parameter
     *
     * @param coeffX2  This is the coefficient of X^2 in quadratic equn
     * @param coeffX   This is the coefficient of X in quadratic equn
     * @param constant This is the constant in quadratic equn
     */
    public Quadratic(int coeffX2, int coeffX, int constant) {
        this.coeffX2 = coeffX2;
        this.coeffX = coeffX;
        this.constant = constant;
    }
    /**
     * This a getter method for variable coeffX2
     *
     * @return int This returns the coefficient of x^2
     */
    public int getCoeffX2() {
        return coeffX2;
    }
    /**
     * This a setter method for variable coeffX2
     *
     * @param coeffX2 This sets the coefficient of X^2 of quadratic equation
     */
    public void setCoeffX2(int coeffX2) {
        this.coeffX2 = coeffX2;
    }
    /**
     * This a getter method for variable coeffX
     *
     * @return int This returns the coefficient of x
     */
    public int getCoeffX() {
        return coeffX;
    }
    /**
     * This a setter method for variable coeffX
     *
     * @param coeffX This sets the coefficient of X of quadratic equation
     */
    public void setCoeffX(int coeffX) {
        this.coeffX = coeffX;
    }
    /**
     * This a getter method for constant term
     *
     * @return int This returns the constant term
     */
    public int getConstant() {
        return constant;
    }
    /**
     * This a setter method for constant
     *
     * @param constant This sets the constant of quadratic equation
     */
    public void setConstant(int constant) {
        this.constant = constant;
    }
    /**
     * This a toString method
     *
     * @return String This return a string showing equation in form ax^2+bx+c
     */
    @Override
    public String toString() {
        return "Quadratic [" + coeffX2 + "X^2 +" + coeffX + "X +" + constant + "]";
    }
    /**
     * This is a method to find slope at a given x
     *
     * @param a This is the point where slope is to be calculated
     * @return int This returns the slope at point x
     */
    public int findSlope(int a) {
        int slope = 2 * coeffX2 * a + coeffX;
        return slope;
    }
    @Override
    public int compareTo(Quadratic o) {
        if (coeffX2 == o.coeffX2) {
            if (coeffX == o.coeffX) {
                return constant - o.constant;
            } else {
                return coeffX - o.coeffX;
            }
        } else {
            return coeffX2 - o.coeffX2;
        }
    }
}
====================================================================
package pack2;
import java.util.Arrays;
public class Driver {
    public static void main(String[] args) {
        Quadratic q1 = new Quadratic(5, 7, 10);
        System.out.println(q1);
        Quadratic q2 = new Quadratic();
        q2.setCoeffX2(4);
        q2.setCoeffX(8);
        q2.setConstant(20);
        System.out.println("Coeff of X^2 : " + q2.getCoeffX2());
        System.out.println("Coeff of X : " + q2.getCoeffX2());
        System.out.println("Constant Term : " + q2.getConstant());
        System.out.println(q2);
        System.out.println("Slope at x = 5 is : " + q2.findSlope(2));
        //In the driver program create a few objects and compare them
        Quadratic q3 = new Quadratic(4, 9, 7);
        Quadratic q4 = new Quadratic(12, 9, 7);
        Quadratic q5 = new Quadratic(1, 1, 1);
        System.out.println("q1.compareTo(q2) = " + q1.compareTo(q2));
        System.out.println("q2.compareTo(q1) = " + q2.compareTo(q1));
        System.out.println("q3.compareTo(q2) = " + q3.compareTo(q2));
        //then create a list of those objects and sort them
        Quadratic [] quadratics = {q1,q2,q3,q4,q5};
        System.out.println("\nBefore Sorting...");
        for(Quadratic q: quadratics){
            System.out.println(q);
        }
        System.out.println("Sorting the quadratics now ...");
        Arrays.sort(quadratics);
        System.out.println("After Sorting...");
        for(Quadratic q: quadratics){
            System.out.println(q);
        }
    }
}
====================================================================
