Похоже, вы используете методы экземпляра вместо статических.
Если вы не хотите создавать объект, вы должны объявить все ваши методы статическими, что-то вроде
private static void methodName(Argument args...)
Если вы хотите, чтобы переменная была доступна всем этим методам, вы должны инициализировать ее вне методов и ограничить ее область действия, объявив ее закрытой.
private static int[][] array = new int[3][5];
На глобальные переменные обычно смотрят свысока (особенно в таких ситуациях, как ваша), потому что в крупномасштабной программе они могут нанести ущерб, поэтому, сделав их закрытыми, вы по крайней мере предотвратите некоторые проблемы.
Кроме того, я скажу, как обычно: вы должны стараться, чтобы ваш код был немного аккуратнее. Используйте описательные имена классов, методов и переменных и сохраняйте ваш код аккуратным (с правильными отступами, переносами строк и т. Д.) И согласованными.
Вот последний (сокращенный) пример того, каким должен быть ваш код:
public class Test3 {
//Use this array in your methods
private static int[][] scores = new int[3][5];
/* Rather than just "Scores" name it so people know what
* to expect
*/
private static void createScores() {
//Code...
}
//Other methods...
/* Since you're now using static methods, you don't
* have to initialise an object and call its methods.
*/
public static void main(String[] args){
createScores();
MD(); //Don't know what these do
sumD(); //so I'll leave them.
}
}
В идеале, поскольку вы используете массив, вы должны создать массив в методе main и передать его в качестве аргумента для каждого метода, но объяснение того, как это работает, вероятно, является совершенно новым вопросом, поэтому я буду оставь это на этом.