Встретил в книге данный пример. Никак не могу понять, почему метод 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();
Нельзя использовать нестатические переменные и методы в статических методах, без создания объекта.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Подскажите, как в javaFX установить размер текстового поля с помощью css? Можно ли чтобы размер открываемой картинки как то зависел от размеров...
У меня имеется popup menu, оно всплывает при нажатии на кнопку, по умолчанию popup menu ориентировано вертикально, а мне нужно перевернуть его на 180 градусов,...
Есть JFrame внутри которого расположен JButton и SingleGraphНа viewer'e графа стоит AutoLayout
Мне в моем приложении надо уметь общаться и с postgresql и c mssqlВ начале приложение обращается k postgre, потом уже к mssql