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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Параметризация 
V
    Опции темы
Che0
Дата 25.2.2011, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть итерфэйс ISweet
Код

public interface ISweet
{
    void nuts(int g);
    void chocolate();
    void nougat();
}

есть класс Chocolate и Caramel
надо резрешить использовать Сhocolate методов nuts и nougat, метод chocolate запретить использовать.
и в классе Caramel анологично разрешить использовать  методы chocolate и nougat, метод nuts запретить.

Насколько мне известно это красиво делаеться с помощью параметризации и насколько я понимаю все просто, но что то не могу разобраться никак.
, не отпровляйте меня пожалуйсто на сайты с теорией я там был и как то не понял все равно.
 дело в том что мне это надо очень очень срочно, а уже поздно голова сооброжает очень тяжело.
Короче спосайте товарищи, горю!!!! 

Если я не прав с параметризацией, то тогда как это сделать подругому?
PM MAIL   Вверх
Temdegon
Дата 25.2.2011, 04:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не совсем ясно, что тебе нужно.
Chocolate и Caramel это класс, реализующие интерфейс ISweet, я правильно понимаю? Тогда зачем запрещать реализуемые методы? Точнее, зачем нужен такой кривой интерфейс, чтоб его методы нельзя было вызывать?
Я может не все знаю про параметризацию, но вроде такое через нее не делается.
Что вобще значит "запретить" в данном контексте? Это должна быть ошибка компиляции или исполнения?
Если сильно хочется, то делайте так:
Код

public class Chocolate implements ISweet
{
    void nuts(int g) { throw new UnsupportedOperationException();} // или какое-нить свое исключение WTFException
    void chocolate() {делаете что-то};
    void nougat() { тут тоже что-то полезное};
}

По мне так нужно убрать нафиг эти три метода, а вместо них добавить один addIngridient(Ingridient i).
ваши орехи, шоколад и нугу унаследовать от абстрактного класса Ingridient.
А уже в этом методе, в конкретной его реализации, в классе Chocolate выбрасывать исключение, если в него передают Nut.
PM MAIL   Вверх
Che0
Дата 25.2.2011, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



так и сделаю
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.0417 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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