(Triangle class) Design a new Triangle class that extends the abstract Geometric
ID: 3827486 • Letter: #
Question
(Triangle class) Design a new Triangle class that extends the abstract GeometricObject class. Draw the UML diagram for the classes Triangle and GeometricObject and then implement the Triangle class. 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.
"Please use Eclipse to write program"
Explanation / Answer
Geometric Object Class:
public abstract class GeometricObject {
private String color = "white";
private boolean filled;
private java.util.Date dateCreated;
protected GeometricObject() {
dateCreated = new java.util.Date();
}
protected GeometricObject(String color, boolean filled) {
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
public String getColor()
{
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
public void setFilled(boolean filled) {
this.filled = filled;
}
public java.util.Date getDateCreated() {
return dateCreated;
}
public String toString() {
return "created on " + dateCreated + " color: " + color +
" and filled: " + filled;
}
public abstract double getArea();
public abstract double getPerimeter();
}
Triangle class:
import javax.swing.JOptionPane;
public class Triangle extends GeometricObject implements Serializable, Comparable <Triangle> {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public Triangle() {
}
public Triangle(double side1, double side2, double side3)
throws IllegalTriangleException {
super("white", false);
if (side1 + side2 > side3 && side2 + side3 > side1 && side1 + side3 > side2){
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
else throw new IllegalTriangleException();
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public void setSide3(double side3) {
this.side3 = side2;
}
public boolean compareArea( Triangle anotherTriangle ) {
return this.getArea() > anotherTriangle.getArea();
}
public double getArea() {
double p = getPerimeter() / 2;
return Math.sqrt(p * ((p - side1) * (p - side2) * (p - side3)));
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public String toString() {
return " Triangle: Side 1 = " + side1 + " Side 2 = " + side2
+ " Side 3 = " + side3;
}
public int compareTo(Triangle arg0)
{
return 0;
}
}
class IllegalTriangleException extends Exception {
public static void main (String[] args) {
try{
String side1String = JOptionPane.showInputDialog("Enter a length for side 1: ");
String side2String = JOptionPane.showInputDialog("Enter a length for side 2: ");
String side3String = JOptionPane.showInputDialog("Enter a length for side 3: ");
double firstSide = Double.parseDouble(side1String);
double secondSide = Double.parseDouble(side2String);
double thirdSide = Double.parseDouble(side3String);
Triangle triangle1 = new Triangle(firstSide, secondSide, thirdSide);
JOptionPane.showMessageDialog(null, "Triangle 1: " + triangle1);
}
catch(IllegalTriangleException ex)
{
JOptionPane.showMessageDialog(null, " Sides are invalid ");
}
}
}
My Test Triangle:
import java.util.Scanner;
import javax.swing.JOptionPane;
public class TestTriangle {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("The color of your triangle will be white");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
Triangle triangle = new Triangle();
try {
triangle = new Triangle(side1, side2, side3);
} catch (IllegalTriangleException e) {
{
JOptionPane.showMessageDialog(null, " Sides are invalid ");
}
}
System.out.println("The Triangle Sides are side 1: " + side1 + " Side 2: " + side2 + " Side 3: " + side3);
System.out.println("The Triangle's Area is " + (side1 + side2 + side3) / 2);
System.out.println("The Triangle's Perimeter is "
+ (side1 + side2 + side3));
System.out.println("The Triangle's Color is " + triangle.getColor());
System.out.println("Is the Triangle filled? " + triangle.isFilled());
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.