Не могу, кажется, распечатать мой периметр и площадь функции - PullRequest
0 голосов
/ 25 октября 2019

По существу расширение абстрактного класса для распечатки периметра, площади и теоремы Пифагора о треугольнике. Я, кажется, продолжаю получать 0 за периметр и площадь. GeometricObject - это родительский класс, а внутри RightTriangle - это то, где у меня возникают проблемы. Я чувствую, как будто ответ очень прост, и я перебираю его, но это растоптало меня. На данный момент я игнорирую остальную информацию от GeometricObject за исключением области и периметра. Я попытался создать новый объект внутри RightTriangle как Triangle, и все, кажется, работает нормально, за исключением того, что я не получаю значение. Я думаю, что это должно что-то делать с моими формулами.


    package GeoObj;

    public abstract class GeometricObject {
    private String color;
    private boolean filled;
    private java.util.Date dateCreated;

    protected GeometricObject() {
        this ("white", false);
    }

    protected GeometricObject (String color, boolean filled) {
        this.color = color;
        this.filled = filled;
        this.dateCreated = new java.util.Date();
    }

    public String getColor () {
        return color;
    }

    public boolean getFilled () {
        return filled;
    }

    public java.util.Date getDateCreated () {
        return dateCreated;
    }
    public void setColor (String color) {
        this.color = color;
    }

    public void setFilled (boolean filled) {
        this.filled = filled;
    }

    public String toString () {
        return "created on " + dateCreated + "\nColor: " + color + " and filled: " + filled;
    }

    public abstract  double getArea ();

    public abstract double getPerimeter ();
}

package GeoObj;

import java.util.Scanner;

public class RightTriangle extends GeometricObject {

    private double base;
    private double height;
    private double hypotenuse;


    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.println("Please enter the base");
        double base = scan.nextDouble();
        //double base = Double.parseDouble("" + scan.nextDouble());

        System.out.println("Please enter the height");
        double height = scan.nextDouble(); 
        //double height = Double.parseDouble("" + scan.nextDouble());

        System.out.println("Please enter the hypotenuse");
        double hypotenuse = scan.nextDouble(); 
        //double hypotenuse = Double.parseDouble("" + scan.nextDouble());
        scan.close();

        RightTriangle triangle = new RightTriangle(base,height,hypotenuse);

        System.out.println("The perimeter of triangle is " + triangle.getPerimeter());
        System.out.println("The area of triangle is " + triangle.getArea());
        System.out.println("The pyragotherom of triangle is " + triangle.getHypotenuse());
    }

    RightTriangle(){
         double height;
         double base;
         double hypotenuse;     
    } 

    RightTriangle(double height, double base, double hypotenuse){
        height = this.height;
        base = this.height;
        hypotenuse = this.hypotenuse;
    }

    RightTriangle(String color, boolean filled){
        this.setColor(color);
        this.setFilled(filled);

    }

    @Override
    public double getPerimeter() {
        // System.out.println("The perimeter of triangle is " + triangle.getPerimeter());
        return base + height + hypotenuse;
        //return perimeter;
    }

    @Override
    public double getArea() {
        return 0.5 * base * height;
        //return area;
    }

    public double getHypotenuse() {
        return Math.sqrt(Math.pow(base,2) + Math.pow(height,2));
        //return hypotenuse;
    }

    public double getBase() {
        return base;
    }

    public double getHeight() {
        return height;
    }

    public void setBase(double base) {
        this.base = base;
    }

    public void setHeight(double height) {
        this.height = height;
    }   

    public void setHypotenuse(double hypotenuse) {
        this.hypotenuse = hypotenuse;
    } 

}
...