1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
8.9 练习.md 4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

Упражнение 8.9

(1) Создайте новый класс с именем Gerbil, в конструкторе которого следует инициализировать поле типа intint gerbilNumber (по аналогии с примером класса Mouse из этой главы). Напишите метод hop(), который выводит номер объекта Gerbil. Создайте объект Vector и добавьте несколько объектов Gerbil в этот Vector. Теперь используйте метод elementAt() для прохода по всем элементам Vector и вызова метода hop() для каждого объекта Gerbil.

(2) Измените упражнение 1 таким образом, чтобы использовать Enumeration для прохода по Vector при вызове метода hop().

(3) В файле AssocArray.java измените пример так, чтобы он использовал Hashtable вместо AssocArray.

(4) Получите класс Gerbil из упражнения 1 и поместите его экземпляры в Hashtable. Приведите имя каждого Gerbil как ключ (String) и сам объект Gerbil как значение. Получите Enumeration для ключей и используйте его для прохода по Hashtable, находите каждый Gerbil по ключу, выводите ключ, а затем передайте Gerbil в метод hop().

(5) Измените упражнение 1 из главы 7, чтобы вместо этого использовать Vector для хранения объектов Rodent (грызуна). Используйте Enumeration для прохода по последовательности Rodent. При этом помните, что Vector может содержать только объекты; поэтому при доступе к отдельному Rodent потребуется преобразование (например, RTTI).(6) Перейдите к середине главы 7 и найдите пример файла GreenhouseControls.java (контроль над теплицей), состоящий из трех файлов. В файле Controller.java класс EventSet представляет собой простую коллекцию. Измените его так, чтобы вместо EventSet использовался Stack. Конечно, замена EventSet на Stack не является единственным требованием; также потребуется использование Enumeration для прохода по набору событий. Возможно, будет удобнее иногда рассматривать эту коллекцию как Stack, а иногда как Vector.(7) (Сложность выше среднего) Найдите исходный код для Vector в библиотеках Java, предоставляемых вместе со всеми выпусками Java. Скопируйте этот код и создайте специальную версию intVector, содержащую только данные типа int. Подумайте, можно ли сделать специальные версии Vector для всех примитивных типов данных. Далее рассмотрите возможность создания связного списка, который мог бы работать с любыми примитивными типами данных. Если бы в Java были предоставлены параметризованные типы, то это позволило бы автоматически выполнить данную задачу (а также много других задач).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master