У меня есть два метода, которые оба печатают содержимое на массивах, один объявляется как public void
, а другой static void
. Однако, когда я вызываю эти методы из основного класса программы, они отличаются друг от друга.java objects - public vs static behavior
общественного недействительными:
public void listStudent() {
for (int i = 0;i < 10;i++) {
if (studentNamesArray[i] != null) {
System.out.println(studentNamesArray[i]);
for(int y = 0;y < 3;y++) {
System.out.println(studentMarksArray[i][y]);
}
}
}
}
Статическая пустота:
static void printArrays() {
for (int i = 0;i < 10;i++) {
if (studentNamesArray[i] != null) {
System.out.println(studentNamesArray[i]);
for(int y = 0;y < 3;y++) {
System.out.println(studentMarksArray[i][y]);
}
}
}
}
public void
при вызове приводит к ошибке nullPointerEception
в то время как static void
вызов ничего не печатает (как ожидается). В обоих случаях массивы пустые, но если я сохраняю значение и затем удаляю это значение, то метод public void
затем печатает ничего, как ожидалось. то есть public void
приводит к ошибке, если она вызывается до создания объекта, даже если этот объект сразу же удаляется из массива.
Почему эти методы ведут себя по-разному? Является ли плохая практика объявлением метода static void
?
Как вы называете 'public void'? Показать код вызова метода. – Masudul
Почему 'i <10'? Использовать 'i
Maroun
public и static - это две совершенно разные вещи. –