Метод, который считает среднее

Всем привет. Есть класс Wagon и класс Train, которые находятся в отношениях "has a". В классе Train необходимо реализовать методы:

1) нахождения сколько всего поезд может перевезти в тоннах
2) среднее на вагон.

public class Wagon {
    int m;

    public Wagon (int m) {
        this.m = m;
    }
}

public class Train {
    int count = 0;
    Wagon wag;

    public Train(Wagon wag) {
        this.wag = wag;
        count++;
    }

    public findCargo() {//общий вес




    }
    public findAverage() //средний на вагон.

    public static void main(String[] args) {


    }
}

Что я делаю не так и как создать такой метод?


Ответы (1 шт):

Автор решения: Denis Kukharenko

В вашем коде:

public Train(Wagon wag) {
    this.wag = wag;
    count++;

Конструктор делает ссылку на саму же себя и за чего остается со значением null.

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

public class Train {

  Wagon[] wag;

  public Train(int num) {
    this.wag = new Wagon[num];
  }


  public static void main(String[] args) {

  Train train = new Train(3);
  train.wag[0] = new Wagon(4);
  train.wag[1] = new Wagon(2);
  train.wag[2] = new Wagon(6);

  System.out.println(train.findCargo());

  System.out.println(train.findAverage());


  }

  public int findCargo() {

    int x = 0;

    for (Wagon w : wag) {

      x+=w.m;
    }

    return x;

  } 

  public int findAverage() {

    return this.findCargo()/wag.length;
  }
}
→ Ссылка