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

A)Define a Rectangle class that extends GeometricObject. The class contains: 1.

ID: 3724173 • Letter: A

Question

A)Define a Rectangle class that extends GeometricObject. The class contains:

1. Two double data fields named side1 and side2 to denote the sides of the rectangle.

2. A no-arg constructor that creates a default rectangle with 1 for each side.

3. A constructor that creates a rectangle with the specified side1 and side2.

4. A method getArea() that returns the area of the rectangle.

5. A method getPerimeter() that returns the perimeter of the rectangle.

Given the code below:

public abstract class GeometricObject {

private String color = "white";

private boolean filled;

private java.util.Date dateCreated;

/** Construct a default geometric object */

protected GeometricObject() {

dateCreated = new java.util.Date();

}

/** Construct a geometric object with color and filled

value */

protected GeometricObject(String color, boolean filled) {

dateCreated = new java.util.Date();

this.color = color;

this.filled = filled;

}

/** Return color */

public String getColor() {

return color;

}

/** Set a new color */

public void setColor(String color) {

this.color = color;

}

/** Return filled. Since filled is boolean,

* the get method is named isFilled */

public boolean isFilled() {

return filled;

}

/** Set a new filled */

public void setFilled(boolean filled) {

this.filled = filled;

}

/** Get dateCreated */

public java.util.Date getDateCreated() {

return dateCreated;

}

@Override

public String toString() {

return "created on " + dateCreated + " color: " +

color +

" and filled: " + filled;

}

/** Abstract method getArea */

public abstract double getArea();

/** Abstract method getPerimeter */

public abstract double getPerimeter();

}

class Triangle extends GeometricObject {

private double side1 = 1.0, side2 = 1.0, side3 = 1.0;

/** Constructor */

public Triangle() {

}

/** Constructor */

public Triangle(double side1, double side2, double

side3) {

this.side1 = side1;

this.side2 = side2;

this.side3 = side3;

}

/** Override method findArea in GeometricObject */

public double getArea() {

double s = (side1 + side2 + side3) / 2;

return Math.sqrt(s * (s - side1) * (s - side2) * (s -

side3));

}

/** Override method findPerimeter in GeometricObject */

public double getPerimeter() {

return side1 + side2 + side3;

}

/** Override the toString method */

public String toString() {

// Implement it to return the three sides

return "Triangle: side1 = " + side1 + " side2 = " +

side2 +

" side3 = " + side3;

}

}

class Test {

public static void main(String[] args) {

GeometricObject gObjectArray [] = new GeometricObject [4];

//Complete your code here

gObjectArray[0] = new Triangle(9,5,7);

gObjectArray[1]=new Triangle();

gObjectArray[2]=new Circle();

gObjectArray[3]=new Circle(2,4,7);

//using loop calling the below print method

for(int i=0;i<gObjectArray.length;i++) {

System.out.println(gObjectArray[i]);

printAreaAndPerimeter(gObjectArray[i]);

}

}

private static void printAreaAndPerimeter(GeometricObject

gObject) {

//Complete your code here

System.out.println("Area : "+gObject.getArea());

System.out.println("Perimeter : "+gObject.getPerimeter());

System.out.println();

}

}

Explanation / Answer

/*Test java program that prints the object
* date with area and perimeter on Console.*/
//Test.java
class Test
{
   public static void main(String[] args)
   {
      
       //Create an array of GeometricObject of size,4
       GeometricObject gObjectArray [] =
               new GeometricObject [4];
      
       //Create Objects of Triangle ,Circle and Rectangle
       gObjectArray[0] = new Triangle(9,5,7);
       gObjectArray[1]=new Triangle();
       gObjectArray[2]=new Circle(10);
      
       //Create an instance of Rectangle with width and height
       gObjectArray[3]=new Rectangle(5, 10);

       //using loop calling the below print method
       for(int i=0;i<gObjectArray.length;i++)
       {
           System.out.println(gObjectArray[i]);
           //calling method printAreaAndPerimeter
           printAreaAndPerimeter(gObjectArray[i]);

       }
   }

   /*Method that prints area and parameter on console.*/
   private static void printAreaAndPerimeter(GeometricObject
           gObject) {
       System.out.println("Area : "+gObject.getArea());
       System.out.println("Perimeter : "+gObject.getPerimeter());
       System.out.println();
   }
}

----------------------------------------------------------------------------------------------------------------


//GeometricObject.java
public abstract class GeometricObject {
   private String color = "white";
   private boolean filled;
   private java.util.Date dateCreated;
   /** Construct a default geometric object */
   protected GeometricObject() {
       dateCreated = new java.util.Date();
   }
   /** Construct a geometric
   * object with color and filled value */
   protected GeometricObject(String color, boolean filled) {
       dateCreated = new java.util.Date();
       this.color = color;
       this.filled = filled;
   }
   /** Return color */
   public String getColor() {
       return color;
   }
   /** Set a new color */
   public void setColor(String color) {
       this.color = color;
   }
   /** Return filled. Since filled is boolean,
   * the get method is named isFilled */
   public boolean isFilled() {
       return filled;
   }
   /** Set a new filled */
   public void setFilled(boolean filled) {
       this.filled = filled;
   }
   /** Get dateCreated */
   public java.util.Date getDateCreated() {
       return dateCreated;
   }
   public String toString() {
       return "created on " + dateCreated + " color: " +
               color +
               " and filled: " + filled;
   }
   /** Abstract method getArea */
   public abstract double getArea();
   /** Abstract method getPerimeter */
   public abstract double getPerimeter();
}

----------------------------------------------------------------------------------------------------------------

//Triangle.java
public class Triangle extends GeometricObject {
   private double side1 = 1.0, side2 = 1.0, side3 = 1.0;
   /** Constructor */
   public Triangle() {
   }
   /** Constructor */
   public Triangle(double side1, double side2, double
           side3) {
       this.side1 = side1;
       this.side2 = side2;
       this.side3 = side3;
   }
   /* Override method findArea */
   public double getArea()
   {
       double s = (side1 + side2 + side3) / 2;
       return Math.sqrt(s * (s - side1) * (s - side2) * (s -
               side3));
   }
   /* Override method findPerimeter */
   public double getPerimeter()
   {
       return side1 + side2 + side3;
   }
   /* Override the toString method */
   public String toString()
   {
       return "Triangle: side1 = " + side1 + " side2 = " +
       side2 +
       " side3 = " + side3;
   }
}

----------------------------------------------------------------------------------------------------------------

//Circle.java
public class Circle extends GeometricObject
{
   private double radius;
  
   public Circle()
   {
       radius=1;
   }
  
   public Circle(double radius)
   {
       this.radius = radius;
   }
  
   public Circle(double radius,
           String color, boolean filled)
   {
       this.radius = radius;
       setColor(color);
       setFilled(filled);
   }
  
   /** Return radius */
   public double getRadius()
   {
       return radius;
   }
   /** Set a new radius */
   public void setRadius(double radius) {
       this.radius = radius;
   }
  
   /** Return area */
   public double getArea()
   {
       return radius * radius * Math.PI;
   }
  
   /** Return diameter */
   public double getDiameter()
   {
       return 2 * radius;
   }
  
   /** Return parameter */
   public double getPerimeter()
   {
       return 2 * radius * Math.PI;
   }
   public String toString() {
       return "The circle is created " + getDateCreated() +
               " and the radius is " + radius;
   }
}

----------------------------------------------------------------------------------------------------------------

//Rectangle.java
public class Rectangle extends GeometricObject
{
   private double width;
   private double height;
   //no argument constructor
   public Rectangle()
   {
       this.width=1;
       this.height=1;
   }
   //parameter argument constructor that takes width and height
   public Rectangle(double width, double height)
   {
       this.width = width;
       this.height = height;
   }
   public Rectangle(
           double width, double height, String color, boolean filled) {
       this.width = width;
       this.height = height;
       setColor(color);
       setFilled(filled);
   }
   /** Return width */
   public double getWidth() {
       return width;
   }
   /** Set a new width */
   public void setWidth(double width) {
       this.width = width;
   }
   /** Return height */
   public double getHeight() {
       return height;
   }
   /** Set a new height */
   public void setHeight(double height) {
       this.height = height;
   }
   /** Return area */
   public double getArea() {
       return width * height;
   }
   /** Return parameter */
   public double getPerimeter() {
       return 2 * (width + height);
   }
  
   /* Override the toString method */
   public String toString()
   {
       return "Rectangel: Width = " + width + " Height = " +
       height ;
   }
}

----------------------------------------------------------------------------------------------------------------

Sample Output:

Triangle: side1 = 9.0 side2 = 5.0 side3 = 7.0
Area : 17.41228014936585
Perimeter : 21.0

Triangle: side1 = 1.0 side2 = 1.0 side3 = 1.0
Area : 0.4330127018922193
Perimeter : 3.0

The circle is created Tue Mar 06 10:16:31 IST 2018 and the radius is 10.0
Area : 314.1592653589793
Perimeter : 62.83185307179586

Rectangel: Width = 5.0 Height = 10.0
Area : 50.0
Perimeter : 30.0

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