Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> an enclosing instance that contains is required 
V
    Опции темы
kornata
Дата 24.3.2010, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Помогите исправить ошибку в коде.

Код

class Outer {

    class Inner {

        Inner(String s) {
            System.out.println(s);
        }
    }
}

class Outer2 {

    class Inner2 extends Outer.Inner {

        private String r;

        public Inner2(String s) {
            super(s); // Здесь выдаёт ошибку
            r = s;

        }
    }
}


PM MAIL   Вверх
jk1
Дата 24.3.2010, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Будет работать так
Код

static class Inner 

Ошибка происходит потому что вы пытаетесь получить доступ к внутреннему классу объекта через включающий его класс без наличия объекта.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
kornata
Дата 24.3.2010, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Извините, не поняла. Как надо?

Добавлено через 2 минуты и 22 секунды
Вообще по заданию мне надо, чтобы второй внутренний класс наследовался от первого в первом классе.
PM MAIL   Вверх
jk1
Дата 24.3.2010, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Например, вот так:
Код

class Outer {
    static class Inner {
        Inner(String s) {
            System.out.println(s);
        }
    }
}
class Outer2 {
    class Inner2 extends Outer.Inner {
        private String r;
        public Inner2(String s) {
            super(s); 
            r = s;
        }
    }
}



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
kornata
Дата 24.3.2010, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



А как теперь подобраться к Inner?

Добавлено через 2 минуты и 34 секунды
У меня так:

Outer o = new Outer();
Outer.Inner oi = o.new Inner("Outer2.Inner2()");

Теперь во второй строчке ошибка из-за статика.

PM MAIL   Вверх
jk1
Дата 24.3.2010, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Пишите так
Код

Outer.Inner oi = new Outer.Inner("Outer2.Inner2()");


P. S. Выложите лучше задание целиком, всем будет проще.

Это сообщение отредактировал(а) jk1 - 24.3.2010, 21:26


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
MaxPayneC
Дата 24.3.2010, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 18.2.2006

Репутация: 5
Всего: 9



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

public class Outer
{
    public class Inner
    {

    }
}

Код

    public static void main(String[] args)
    {
        Outer o = new Outer();
        Outer.Inner i = o.new Inner();
    }

PM   Вверх
kornata
Дата 25.4.2010, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Спасибо!
PM MAIL   Вверх
to0ok
Дата 15.6.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.6.2010

Репутация: нет
Всего: нет



Подскажите плз, а что делать, если:

Код


public class Outer
{
    public abstract class Inner
    {

    }
}


Как быть в таком случае?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0882 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.