powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / объясните плиз почему не компиляется
5 сообщений из 5, страница 1 из 1
объясните плиз почему не компиляется
    #32344046
__новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class a {
    public class b
    {

    }
    static void c()
    {
        new b();
    }
}


убираю static - все ok
...
Рейтинг: 0 / 0
объясните плиз почему не компиляется
    #32344148
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как в статическом методе можно обращаться к не статическим переменным?
...
Рейтинг: 0 / 0
объясните плиз почему не компиляется
    #32344150
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да потому что
public class b -- является внутренним и может существовать только в том случае если если создан экземпляр внешнего класса в контексте которого он и будет создаваться, когда ты вызываешь
new b(); не из статического метода, то следовательно экземпляр класса a уже есть, а иначе в статическом это требование не выполнятся.

А вообще Эккеля читать надо, там хорошо про внутренние/внешние классы рассказано.
...
Рейтинг: 0 / 0
объясните плиз почему не компиляется
    #32344436
__новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как все запущено...
У экземпляра внутреннего класса есть какая-то встроенная ссылка на экземпляр внешнего? что-то вроде parent_this?
В С++ внутренний/внешний класс - это просто различия в области видимости
там аналогичный код без проблем компиляется:
Код: plaintext
1.
2.
3.
class a {
    class b { };
    static void c()   {  new b();  }
};

а в Джаве как?
спеку я конечно прочитаю ...когда-нибудь :)
...
Рейтинг: 0 / 0
объясните плиз почему не компиляется
    #32345563
space_center
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 _новичок

В данном случае, по моему мнению это скорее преимущество Java, фактически у тебя есть два варианта использования внутрених классов.

А что, неужели так трудно просто static дописать?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / объясните плиз почему не компиляется
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]