Nie działa dlatego, żę wywołujesz to na rzecz innego obiektu. Chodzi o to, że robiąc coś takiego:
words[index].checkWord();
Ty wywołujesz dla każdego słowa osobny licznik.
Trzeba zrobić np. tak: globalny obiekt, który będzie przechowywał bazę słów i licznik poprawnych odpowiedzi. Dla uproszczenia, możesz od razu w tej klasie zrobić obsługę użytkownika:
public class Tester
{
private Word[] words;
private int goodAnswers = 0;
public Tester(Word[] words)
{
this.words = words;
}
public void startTest()
{
/*mniej więcej to co w metodzie testStudent
tylko slowa bierzesz ze zmiennej klasowej words
*/
}
private void checkWord()
{
/*
sprawdzanie odpowiedzi i naliczanie goodAnswers
*/
}
}
Klasa Word niech zawiera tylko same dane:
public class Word
{
private String pol;
private String eng;
public Word(String pol, String eng)
{
this.pol = pol;
this.eng = eng;
}
public String getPol()
{
return pol;
}
public String getEng()
{
return eng;
}
}
Przykładowe użycie:
public class TesterWord
{
public static void main(String [] args)
{
Word[] words = new Word[3];
words[0] = new Word("pies", "dog");
words[1] = new Word("kot", "cat");
words[2] = new Word("koniec", "finish");
Tester tester = new Tester(words);
tester.startTest();
}
}