Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / объясните плиз почему не компиляется / 5 сообщений из 5, страница 1 из 1
04.12.2003, 18:26
    #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
04.12.2003, 20:37
    #32344148
stdio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объясните плиз почему не компиляется
А как в статическом методе можно обращаться к не статическим переменным?
...
Рейтинг: 0 / 0
04.12.2003, 20:41
    #32344150
black zorro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объясните плиз почему не компиляется
Да потому что
public class b -- является внутренним и может существовать только в том случае если если создан экземпляр внешнего класса в контексте которого он и будет создаваться, когда ты вызываешь
new b(); не из статического метода, то следовательно экземпляр класса a уже есть, а иначе в статическом это требование не выполнятся.

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

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

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

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


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