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

JAVA programming Lab - Triangle Class Demonstrate polymorphism by modifying the

ID: 3810735 • Letter: J

Question

JAVA programming

Lab - Triangle Class

Demonstrate polymorphism by modifying the attached PolymorphismDemo file to display the area of a triangle.

(The Triangle class) Design a class named Triangle that extends GeometricObject. The class contains:

Three double data fields named side1, side2, and side3 with default values 1.0 to denote three sides of the triangle.

A no-arg constructor that creates a default triangle.

A constructor that creates a triangle with the specified side1, side2, and side3.

The accessor methods for all three data fields.

A method named getArea() that returns the area of this triangle.

A method named getPerimeter() that returns the perimeter of this triangle.

A method named toString() that returns a string description for the triangle.

For the formula to compute the area of a triangle, see Programming Exercise 2.19. The toString() method is implemented as follows:

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

Draw the UML diagrams for the classes Triangle and GeometricObject and implement the classes.

Write a test program that prompts the user to enter three sides of the triangle, a color, and a Boolean value to indicate whether the triangle is filled.

The program should create a Triangle object with these sides and set the color and filled properties using the input.

The program should display the area, perimeter, color, and true or false to indicate whether it is filled or not.

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

<PolymorphismDemo file>

public class PolymorphismDemo {

/** Main method */

public static void main(String[] args) {

// Display circle and rectangle properties

displayObject(new CircleObject

(1, "red", false));

displayObject(new RectangleObject

(1, 1, "black", true));

}

/** Display geometric object properties */

public static void displayObject(GeometricObject object) {

System.out.println("Created on " + object.getDateCreated() +

". Color is " + object.getColor());

if (object instanceof CircleObject) {

System.out.println("The circle area is " +

((CircleObject) object).getArea());

}

}

}

Explanation / Answer

public class GeometricObject {
   public double getArea(){return 0.0;}
   public double getPerimeter(){return 0.0;}
   public String toString(){return "";}
}

public class Triangle extends GeometricObject{
  
   private double side1;
   private double side2;
   private double side3;
  
   public Triangle(){
       setSide1(1.0);
       setSide2(1.0);
       setSide3(1.0);
   }
  
   public Triangle(double s1,double s2 ,double s3){
       setSide1(s1);
       setSide2(s2);
       setSide3(s3);
   }

   public double getSide1() {
       return side1;
   }

   public void setSide1(double side1) {
       this.side1 = side1;
   }

   public double getSide2() {
       return side2;
   }

   public void setSide2(double side2) {
       this.side2 = side2;
   }

   public double getSide3() {
       return side3;
   }

   public void setSide3(double side3) {
       this.side3 = side3;
   }
  
   public double getArea(){
       double p = getPerimeter()/2.0d;
       double area = Math.sqrt(p*(p-side1)*(p-side2)*(p-side3));
       return area;
   }
   public double getPerimeter(){
       return getSide1() + getSide2() + getSide3();
   }
   public String toString(){
       return "Triangle: side1 = " + side1 + " side2 = " + side2 + " side3 = " + side3;
   }
}

public class PolymorphismDemo {
   /** Main method */
   public static void main(String[] args) {
   displayObject(new Triangle());
   displayObject(new Triangle(1.0, 1.6, 1.9));
   }
     
  
   public static void displayObject(GeometricObject object) {
   if (object instanceof Triangle) {
       System.out.println(object);
   System.out.println("The Triangle area is " + object.getArea());
   }
   }
}