Область прямоугольника Java / вывод периметра 0 - PullRequest
0 голосов
/ 19 октября 2019

Когда я запускаю свой Rectangle.java, я могу получить введенную длину и ширину в прямоугольнике, но когда я пытаюсь вычислить площадь / периметр с помощью геттера, я получаю ноль как результат

Я попытался добавить и удалить сеттеры, вставить методы getter / setter в getArea и getPerimeter, но, похоже, ничего не работает

//Code provided by the teacher as a template 
Rectangle temp = new Rectangle();
        temp.print();
        System.out.println();

        temp.setLength(2.5);
        temp.setWidth(3.0);
        //Consider how your rectangle will change after setting the length and width to specific values.
        temp.print();

        System.out.println();

        Rectangle r = new Rectangle(3.5,2);
        r.print();




//My Class

public class Rectangle 
{
    private static double length;
    private static double width;
    private static double perimeter;
    private static double area;

    public Rectangle(double length, double width)
    {
        setLength(length);
        setWidth(width);
    }

    public Rectangle()
    {

    }

    public static double getLength() 
    {
        return length;
    }
    public static void setLength(double length) 
    {
        Rectangle.length = length;
    }
    public static double getWidth() 
    {
        return width;
    }
    public static void setWidth(double width)
    {
        Rectangle.width = width;
    }   
    public static double getPerimeter(double length, double width) 
    {
        return 2*width+2*length;
    }

    public static double getArea(double length, double width) 
    {
        area= getLength()*getWidth();
        return length*width;
    }


    public static String print() 
    {
        String Rectangle = new String();
        System.out.println("This rectangle has a length of "+length+" and a width of "+width);
        System.out.println("The area of the rectangle is: "+ area);
        System.out.println("The perimeter of the rectangle is: "+ perimeter);
        return Rectangle;

    }
}

Нет сообщений об ошибках.

Вывод:

Этот прямоугольник имеет длину 0,0 и ширину 0,0. Площадь прямоугольника: 0,0. Периметр прямоугольника: 0,0

Этот прямоугольник имеет длину 2,5 и ширину 3,0. Площадь прямоугольника: 0,0. Периметр прямоугольника: 0,0

Этот прямоугольник имеет длину 3,5 и ширину 2,0. Площадь прямоугольника: 0,0. Периметр прямоугольника: 0,0

1 Ответ

0 голосов
/ 19 октября 2019

Вам нужно изменить метод печати и вызвать метод периметра и области, чтобы эти переменные получали требуемые значения

 public static String print() 
{
    getPerimeter(length,width);
    getArea(length,width);
    String Rectangle = new String();
    System.out.println("This rectangle has a length of "+length+" and a width of "+width);
    System.out.println("The area of the rectangle is: "+ area);
    System.out.println("The perimeter of the rectangle is: "+ perimeter);
    return Rectangle;

}

Я бы предложил не использовать статические ключевые слова, так как значения не будут привязаны кобъект

...