Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Упражнения

Читайте также:
  1. Артикуляционные упражнения для растягивания уздечки языка
  2. Базовые упражнения на меткость
  3. Базовые упражнения на меткость
  4. БЕЗОПАСНЫЕ И УДОБНЫЕ УПРАЖНЕНИЯ ВО ВРЕМЯ ГРУДНОГО ВСКАРМЛИВАНИЯ
  5. Благочестивые упражнения во время молитвы и расслабления духовного.
  6. Глава 18. УПРАЖНЕНИЯ ПО ПОВЫШЕНИЮ УВЕРЕННОСТИ В СЕБЕ
  7. Дыхательные Упражнения Вазы
  8. Задачи и упражнения
  9. Занятие 10. Одноатомные спирты. Тест по теме «Одноатомные спирты». Задачи и упражнения на одноатомные спирты.
  10. Звуковые упражнения

Решения для этих упражнений доступны в электронном документе The Thinking in Java Annotated Solution Guide, доступном за небольшую плату с www.BruceEckel.com.

  1. Докажите, что поля в интерфейсе полностью static и final.
  2. Создайте интерфейс, содержащий три метода, в его собственном пакете. Реализуйте этот интерфейс в другом пакете.
  3. Докажите, что все методы в интерфейсе автоматически public.
  4. В c07:Sandwich.java, создайте интерфейс с именем FastFood (с соответствующими методами) и изменит Sandwich так, что бы он также реализовывал FastFood.
  5. Создайте три интерфейса, каждый с двумя методами. Наследуйте новый интерфейс от этих трех, добавьте новый метод. Создайте класс реализующий этот новый интерфейс и так же наследующий от конкретного класса. Теперь напишите четыре метода, каждый из которых получают один из четырех интерфейсов в качестве аргумента. В main(), создайте объект вашего класса и передайте его каждому из методов.
  6. Измените упражнение 5, создайте abstract класс и наследуйте его в дочернем классе.
  7. Измените Music5.java, добавьте в него интерфейс Playable. Удалите объявление play() из Instrument. Добавьте Playable в дочерний класс, путем добавления его в список implements. Измените tune() так, что бы он получал Playable вместо Instrument.
  8. Измените упражнение 6 в главе 7, так что бы Rodent был бы интерфейсом.
  9. В Adventure.java добавьте интерфейс CanClimb, такой же, как и другие.
  10. Напишите программу, которая импортирует и использует Month2.java.
  11. Следуя примеру в Month2.java, создайте список дней недели.
  12. Создайте интерфейс с не менее, чем одним методом, в своем собственном пакете. Создайте класс в другом пакете. Добавьте protected внутренний класс, который реализует этот интерфейс. В третьем пакете, наследуйте от вашего класса и внутри метода возвратите объект protected внутреннего класса, приведите к базовому типу во время возврата.
  13. Создайте интерфейс с не менее, чем одним методом и реализуйте его определением во внутреннем классе методом, который возвращает ссылку на этот интерфейс.
  14. Повторите упражнение 13, но определите внутренний класс внутри контекста метода.
  15. Повторите упражнение 13 используя анонимный внутренний класс.
  16. Создайте private внутренний класс, который реализует public интерфейс. Напишите метод, возвращающий ссылку на экземпляр private внутреннего класса, приведите к базовому типу к интерфейсу. Покажите, что внутренний класс полностью скрыт от попыток привести к дочернему классу.
  17. Создайте класс с конструкторами по умолчанию и нет. Создайте второй класс, который возвращает ссылку на первый. Создайте объект из возврата создавая анонимный внутренний класс, наследующий от первого.
  18. Создайте класс с private полем и private методом. Создайте внутренний класс, который модифицирует поля внешнего класса и вызывает методы внешнего класса. Во втором методе внешнего класса, создайте объект внутреннего класса и вызовите его методы, потом покажите происходящий эффект на объекте внешнего класса.
  19. Повторите упражнение 18 используя анонимный внутренний класс.
  20. Создайте класс, содержащий static внутренний класс. В main(), создайте экземпляр внутреннего класса.
  21. Создайте интерфейс содержащий static внутренний класс. Реализуйте этот интерфейс и создайте экземпляр внутреннего класса.
  22. Создайте класс, содержащий внутренний класс, который в себе содержит внутренний класс. Повторите это используя static внутренний класс. Заметьте, что .class файлы создаются компилятором.
  23. Создайте класс с внутренним классом. В другом классе, создайте экземпляр внутреннего класса.
  24. Создайте класс с внутренним классом, который имеет конструктор не по умолчанию. Создайте второй класс с внутренним классом, который наследует от первого внутреннего класс.
  25. Устраните проблему в WindError.java.
  26. Измените Sequence.java добавление метода getRSelector(), который предоставляет отличную реализацию интерфейса Selector, которая проходит назад через последовательность от конца к началу.
  27. Создайте интерфейс U с тремя методами. Создайте класс A с методом создающим ссылку на U используя внутренний класс. Создайте класс B, который содержит массив из U. B должен иметь один метод, который поддерживает и сохраняет ссылки на U в массив, а его второй метод должен устанавливать ссылку в массиве в null. И в заключении третий метод, который перемещается по массиву и вызывает методы в U. В main(), создайте группу из объектов A и одиночный B. Заполните B ссылками U выдаваемыми объектом A. Используйте B для обратного вызова во все объекты A. Удалите некоторые ссылки U из B.
  28. В GreenhouseControls.java, добавьте Event внутренний класс, который включает и выключает вентиляторы.
  29. Покажите, что внутренний класс имеет доступ к private элементам его внешнего класса. Определите, когда обратное предположение истинно.

[38] Этот подход был вдохновлен по имейлу Rich-м Hoffarth-м.

[39] Спасибо, Martin-у Danner-у за задание этого вопроса во время семинара.

[40] Это очень отличается по дизайну вложенных классов в in C++, который есть только механизм скрытия имен. Здесь нет ссылки на окружающий объект и нет предполагаемых ограничений, в C++.

[41] Опять спасибо Martin-у Danner-у.

[42] С другой стороны, "$" это мета-знак в Unix shell и у вас могут иногда встречаться проблемы связанные с просмотром листингов .class файлов. Это немного странно, ведь Sun производитель юниксов.

[43] По некоторым причинам это была всегда приятная проблема для ее решения. Поэтому я опять вернулся к ней (до этого она была в более ранней книге C++ Inside & Out), но в Java существует более элегантное решение.

 




Дата добавления: 2015-09-11; просмотров: 28 | Поможем написать вашу работу | Нарушение авторских прав

Внутренние классы | Внутренний класс и приведение к базовому типу | Внутренние классы в методе и контексте | Анонимный внутренний класс | Связь с внешним классом | Static внутренние классы | Зачем внутренние классы? | Замыкания & обратные вызовы | Массивы - первоклассные объекты | Возвращение массива |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав