JAVA Objective This lab will test your knowledge of equals

JAVA

Objective

This lab will test your knowledge of equals() , setter and getter methods. The program does not take any user input. We

will create a program that will allow us to create Shape objects that can be a RECTANGLE, CIRCLE, or TRIANGLE.

Your Task is: Create a project called ShapeChecker . It will contain 2 classes; the main class ShapeChecker, and another class, Shape. 1. Create the class called Shape

described below: It will contain 4 instance variables: private String type

- The type of shape. It can be “RECTANGLE”, “CIRCLE”, or “TRIANGLE” private double base

- The base of the shape (if any) private double height

- The height of the shape (if any) private double diameter

- The diameter of the shape (if any)

2. Setters and Getters: Create getters and setters for each instance variable –The setters for base and height should only

allow the respective variable to be set if the type was previously set to “RECTANGLE” or“TRIANGLE”. They should print

an error message otherwise. The setter for diameter should only allow the respective variable to be set if type was previously set to “CIRCLE”. It should print an error message otherwise.3. Create the following 2 methods: public double getArea() Return the area of the shape based on the type:•Rectangle: Base * Height • Triangle: 1/2 Base * Height • Circle: PI * (1/2 Diameter) 2 public boolean equals(Shape otherShape) Returns true if the areas of the shapes are within 50 units of each other

(for example, if shape1.getArea() returns 110, and shape2. getArea() returns 115, these should be considered equal, regardless of what the shape type is. It should use the getArea() methods of the shape objects when comparing their areas.

In the main method of

ShapeChecker

do the following:

1. Create 3 objects of type Shape, shape1, shape2, and shape3.

2. Set the following values for each shape object:

1. shape1:

type = “RECTANGLE”

base = 50

height = 20

2. shape2:

type = “TRIANGLE”

base

= 80

height = 24

3. shape3:

type = “CIRCLE”

diameter = 36

3. Using the

equals()

method of shape1, check if it is equal to shape2 and print a message saying

if it is or is not

4. Do the same for shape2 and shape3, and shape1 and shape3

Solution

//ShapeType.java
public enum ShapeType
{
   RECTANGLE,TRIANGLE,CIRCLE
}

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


//Shape.java
public class Shape
{
  
   //instance variables of class
   private ShapeType type;
   private double base;
   private double height;
   private double diamter;
  
   //default constructor
   public Shape() {
       // TODO Auto-generated constructor stub
   }
  
   //Set type
   public void setType(ShapeType type)
   {
       this.type=type;
   }
  
   //Set base
   public void setBase(double base)
   {
       if(type==ShapeType.RECTANGLE ||type==ShapeType.TRIANGLE)
           this.base=base;
       else
           System.out.println(\"Invalid type\");
   }
  
   //Set height
   public void setHeight(double height)
   {
       if(type==ShapeType.RECTANGLE ||type==ShapeType.TRIANGLE)
           this.height=height;
       else
           System.out.println(\"Invalid type\");
   }
  
   //Set diameter
   public void setDiamter(double diameter)
   {
       if(type==ShapeType.CIRCLE)
           this.diamter=diameter;
       else
           System.out.println(\"Invalid type\");
   }
  
   //Return area
   public double getArea()
   {
       double area=0;
       if(type==ShapeType.RECTANGLE)
           area=base*height;
       else if(type==ShapeType.TRIANGLE)
           area=0.5*base*height;
       else if(type==ShapeType.CIRCLE)
           area=Math.PI*Math.pow(1/diamter,2);
      
       return area;
      
   }
   //return true if difference of areas of the shape objects within 50 units
   public boolean equals(Shape otherShape)
   {      
       return Math.abs(getArea()-otherShape.getArea())<50? true:false;  
   }
}//end of the class

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

//ShapeChecker.java
public class ShapeChecker {
   public static void main(String[] args) {

      
       //Create an instance of Shape1 and set type as RECTANGLE
       Shape s1=new Shape();
       s1.setType(ShapeType.RECTANGLE);
       s1.setBase(50);
       s1.setHeight(20);
       //Create an instance of Shape2 and set type as TRIANGLE
       Shape s2=new Shape();
       s1.setType(ShapeType.TRIANGLE);
       s1.setBase(80);
       s1.setHeight(24);
       //Create an instance of Shape3 and set type as CIRCLE
       Shape s3=new Shape();
       s1.setType(ShapeType.CIRCLE);
       s1.setDiamter(36);
      
       //checking of s1 and s2 are equal
       if(s1.equals(s2))
           System.out.println(\"s1 and s2 are equal\");
       else
           System.out.println(\"s1 and s2 are not equal\");
      
       //checking of s2 and s3 are equal
       if(s2.equals(s3))
           System.out.println(\"s2 and s3 are equal\");
       else
           System.out.println(\"s2 and s3 are not equal\");
      
       //checking of s1 and s3 are equal
       if(s1.equals(s3))
           System.out.println(\"s1 and s3 are equal\");
       else
           System.out.println(\"s1 and s3 are not equal\");      
   }
}

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

Sample Ouptut:

s1 and s2 are equal
s2 and s3 are equal
s1 and s3 are equal

JAVA Objective This lab will test your knowledge of equals() , setter and getter methods. The program does not take any user input. We will create a program tha
JAVA Objective This lab will test your knowledge of equals() , setter and getter methods. The program does not take any user input. We will create a program tha
JAVA Objective This lab will test your knowledge of equals() , setter and getter methods. The program does not take any user input. We will create a program tha
JAVA Objective This lab will test your knowledge of equals() , setter and getter methods. The program does not take any user input. We will create a program tha

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site