Внутренние классы в Java - ошибка нестатической переменной
==========================================================

Я все еще новичок в Java, и я попытался создать внутренний класс и вызвать метод внутри main. Но есть ошибка компиляции: «Нестатическая переменная - на нее нельзя ссылаться из статического контекста»

Пожалуйста помоги

внутренний классу нужна ссылка на экземплярвнешний класс для того, чтобы быть построенным. Если вашему классу это не нужно, используйте`static` Модификатор, чтобы сделать его "просто вложенным классом":

РЕДАКТИРОВАТЬ: Чтобы создать экземпляр`Class2` каквнутренний класс, вы можете использовать что-то вроде:

Или более кратко:

... но если вы действительнохотеть ссылка на включающий экземпляр, гораздо проще сделать класс просто вложенным классом.



 добавив статическое ключевое слово как

тогда это должно работать. Вы не можете спрашивать что-либо статическое, что есть для каждого класса в нестатическом контексте. В качестве альтернативы вы можете получить к нему доступ, создав объект без превращения class2 в статический объект.



«main ()» не подходит для любой сложной логики. Вы не можете вызывать из него любой метод, который не является статическим в классе. «main ()» необходим только для запуска приложения,

Во многих случаях прежде всего вам необходимо создать экземпляр класса, который содержит метод «main». В примере это «OuterClass».

Когда существует экземпляр «OuterClass», у вас нет проблем с тем, чтобы вызывать из него что-нибудь динамическое, например, ваши методы InnerClass объекта InnerClass.

Вот пример:



 как и к любым другим обычным методам вашего класса.

Так же, как вам нужна ссылка на`instance` вашего класса для доступа к его методу, аналогично вам нужна ссылка на экземпляр внешнего класса, чтобы создать экземпляр вашего внутреннего класса:

Или же,**альтернатива** есть, вы можете сделать свой внутренний класс`static`в этом случае это называется`nested class`Тогда вы можете использовать свой оригинальный способ: -