Проблема с вашим кодом в том, что ваш метод main
пытается получить доступ к локальной переменной класса Data
. В отличие от полей и функций, локальные переменные других классов не зависят от классов на одном уровне вложенности *.
Для того, чтобы решить эту проблему, сделать score
переменной членом Data
, и добавить метод геттер сделать доступ к нему:
public class Data {
// Declaring score here makes it an instance variable
private int score;
// Giving score a getter lets others access the value,
// but it does not let them set the new score
public int getScore() { return score; }
// test() method can be used to set the score to a specific value
public void test(){
score = 100;
}
}
Теперь ваш метод main
может получить доступ к score
из Data
класса по телефону getScore()
, как это:
public static void main(String[] args){
Data gameData = new Data();
gameData.test();
System.out.println(gameData.getScore());
}
* Вложенные классы могут получить доступ конечных локальных переменных о f, внутри которых создаются экземпляры.
Так что вы даже не буду упоминать, что проблема? – John3136