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

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

Взаимодействие с коллекциями

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

Метод addMoney() позволяет нам добавить банкноту в наш кошелек. Вспомните, что наши "банкноты" представляют собой простые целые числа. Для добавления их в нашу коллекцию мы заключаем int в Integer.

Метод spendMoney() тоже работает с упаковкой для проверки наличия банкноты в нашем кошельке, вызывая методcontains(). Если она есть, мы вызываем remove() для ее извлечения. Если нет, мы говорим об этом.

Давайте применим эти методы в main(). Замените его текущее содержимое на следующий код:

public static void main(String[] args) { Adult myAdult = new Adult();   myAdult.addMoney(5); myAdult.addMoney(1); myAdult.addMoney(10);   StringBuffer bills = new StringBuffer(); Iterator iterator = myAdult.getWallet().iterator(); while (iterator.hasNext()) { Integer boxedInteger = (Integer) iterator.next(); bills.append(boxedInteger); } System.out.println(bills.toString()); }

В методе main() скомбинировано много действий, о которых мы уже знаем. Прежде всего, мы вызываем addMoney()несколько раз для помещения денег в кошелек. Затем в цикле проверяем содержимое кошелька и выводим эту информацию. Для этого используем цикл while, но необходимо выполнить некоторую дополнительную работу. Мы должны:

· Получить Iterator для списка, который позволит нам обращаться к элементам в списке.

· Вызвать метод hasNext() объекта Iterator в качестве булевого выражения нашего цикла для того, чтобы определить, есть ли у нас еще элементы для обработки.

· Вызвать метод next() объекта Iterator для получения следующего элемента каждый раз при прохождении цикла.

· Привести тип (или преобразовать) возвращаемого объекта в тип элементов, находящихся в списке (в данном случае Integer)

Это стандартная процедура для прохождения по коллекции в языке Java. В качестве альтернативы, мы могли бы вызвать toArray() и получить массив, по которому мы могли бы пройти при помощи цикла for. Но более объектно-ориентированный способ - это использовать возможности библиотеки Java Collections.

Единственной новой концепцией здесь является приведение типов. Что это такое? Как мы уже знаем, объекты в языке Java имеют тип или класс. Если вы посмотрите на сигнатуру метода next(), то увидите, что он возвращает Object, а не конкретный подкласс Object. Все объекты в мире Java-программирования являются подклассами Object, но язык Java должен знать конкретный тип объекта, для того чтобы вы могли вызывать методы, специфичные для типа, с которым работаете. Если вы не выполните приведение типа, то будете ограничены только методами, доступными для Object, которые составляют довольно небольшой список. В данном примере нам не нужно вызывать какие-либо методы классаInteger, но если бы мы делали это, то должны были бы сначала выполнить приведение типов.




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

Нужно ли мне это руководство? | Краткая экскурсия по Eclipse | Объявление класса | Объявление класса | Примитивные типы данных | Вызов методов | Арифметические операторы и операторы присваивания | Использование циклов for | Методы класса | Будьте открыты |


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