Ваш конструктор, использующий два аргумента, инициализирует вектор, но конструктор без параметров не
public Equipe(Vector<Joueur> E, Vector<Entraineur> Ent) {
VJ = new Vector<Joueur>(); //<-- OK
//rest of the logic
}
public Equipe() {
//<-- errrk
}
Затем, когда вы вызываете:
System.out.println(Eq2.VJ.get(i).isBall());
Вы используете действительно вызов:
Eq2.null.get <-- NullPointerException
Но проблема real в конструкторе Match:
public Match(Equipe Eq1, Equipe Eq2) {
Eq1 = this.Eq1;
Eq2 = this.Eq2;
}
Здесь вы присваиваете локальной переменной Eq1 значение переменной экземпляраEq1 вы действительно хотите это наоборот:
public Match(Equipe Eq1, Equipe Eq2) {
this.Eq1 = Eq1;
this.Eq2 = Eq2;
}
Кстати, это не C #, и в Java как соглашения о кодировании и методы, и атрибуты начинаются со строчной буквы, а открывающая скобка идет в одной строке (хотяэта последняя часть не так важна, как соглашение об именах)
Надеюсь, это поможет.