Встретил в книге данный пример. Никак не могу понять, почему метод third() дает ошибку? В книге написанно, ошибка возникает из-за того, что "не статическому методу присваивается статическая ссылка" Но ведь переменная name не является статической. Или я что-то не правильно понял? Заранее спасибо!
public class Static {
private String name = "Static class";
public static void first() { }
public static void second() { }
public void third() { System.out.println(name); }
public static void main(String args[]) {
first();
second();
third(); // DOES NOT COMPILE
} }
Потому что для вызова нестатического метода необходим объект (instance).
Дело не в том, что внутри third используется поле name, а в том, что этот метод вызывается напрямую из другого статического метода.
new Static().third();
Нельзя использовать нестатические переменные и методы в статических методах, без создания объекта.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости