почему re c .area и re c .perimeter всегда равны 0? - PullRequest
0 голосов
/ 27 марта 2020

Я не понимаю, почему напечатаны re c .area и re c .perimeter только 0

Прямоугольники

class Rectangles {

        int weight;
        int height;
        int area;
        int perimeter;

        int area (int weight, int height) {
            return  weight * height;
        }

        int perimeter (int weight, int height) {
            return  2 * (weight + height);
        }
    }

RectanglesTest

class RectanglesTest {
    public static void main(String[] args)  {

        Rectangles rec = new Rectangles();

        rec.weight = 10; 
        rec.height = 15; 

        System.out.println(rec.weight);
        System.out.println(rec.height);
        System.out.println(rec.area);
        System.out.println(rec.perimeter);
    }
}

Ответы [ 2 ]

1 голос
/ 27 марта 2020

Вы путаете имена полей с именами методов - лучше всего сделать их разными, но в любом случае с вашим кодом

public static void main(String[] args) {

  Rectangles rec = new Rectangles();

  rec.weight = 10; 
  rec.height = 15; 

  System.out.println(rec.weight);
  System.out.println(rec.height);
  System.out.println(rec.area ());
  System.out.println(rec.perimeter ());
}

Поскольку вы используете поля, никакие другие параметры не требуются для передачи этим методам поэтому измените их на

int area () { ....}
int perimeter () { ....}

лучше называть методы глаголами, например calcArea

На самом деле вы не используете

int area;
int perimeter;

, поэтому Вы можете удалить их

0 голосов
/ 27 марта 2020

, поскольку значения area и perimeter не изменились, в ваших методах вы должны сделать их void и присвоить вычисленные значения запрошенным атрибутам

class Rectangles {

        int weight;
        int height;
        int area;
        int perimeter;

        void area () {
            area = weight * height;
        }

        void perimeter () {
            perimeter = 2 * (weight + height);
        }
}

и в вашем main метод, вы должны вызывать методы до

public static void main(String[] args) {

  Rectangles rec = new Rectangles();

  rec.weight = 10; 
  rec.height = 15; 
  rec.area();
  rec.perimeter();
  System.out.println(rec.weight);
  System.out.println(rec.height);
  System.out.println(rec.area);
  System.out.println(rec.perimeter);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...