Triangle Class

2 minute read

The code has been modified slightly and now uploaded to the site.

Question

<— Return Home

Main.java

import java.util.Scanner;

public class Main extends RuntimeException{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter three numbers: ");
        double left = input.nextInt();
        double right = input.nextInt();
        double bottom = input.nextInt();
        System.out.print("Enter color: ");
        String color = input.next();
        boolean value = false;
        System.out.println("Is it filled?: (0 for false / 1 for true) ");
        try{
            int filledOrNot = input.nextInt();
            if (filledOrNot == 0){
                value = false;
            }
            else if (filledOrNot == 1){
                value = true;
            }
            else{
                throw new InvalidNumberException("InvalidNumberException: NUMBER MUST BE 0 OR 1!");
            }
            Triangle triangle = new Triangle(left, right, bottom, color, value);
            System.out.println(triangle);
            input.close();
        }catch(InvalidNumberException e){
            System.out.println(e.getMessage());
        }
    }
}

<— Return Home

Triangle.java

public class Triangle extends GeometricObject{
    private double left;
    private double right;
    private double down;
    private double halfOfBottom;
    private double area;
    private double getMiddleSide;
    public Triangle(){

    }

    public Triangle(double left, double right, double down, String color, boolean filled){
        super(color, filled);
        this.left = left;
        this.right = right;
        this.down = down;
    }

    public double getArea(){
        // halfOfBottom = down / 2;
        // getMiddleSide = Math.sqrt(Math.pow(left, 2) - Math.pow(halfOfBottom, 2));
        // area = halfOfBottom * getMiddleSide / 2;
        area = (left + right + down) / 2;
        return area;
    }

    public double getPerimeter(){
        return left + right + down;
    }

    @Override
    public String toString(){
        return super.toString() + " Area: " + getArea() + " Perimeter: " + getPerimeter();
    }
}

<— Return Home

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 getter method is named is Filled */
    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 + "\ncolor: " + color + " and filled: " + filled;
    }

    /** Abstract method getArea */
    public abstract double getArea();

    /** Abstract method getPerimeter  */
    public abstract double getPerimeter();
}

<— Return Home

InvalidNumberException.java

public class InvalidNumberException extends RuntimeException{
    
    public InvalidNumberException(){

    }

    public InvalidNumberException(String msg){
        super(msg);
    }
}

<— Return Home