3-й семестр / Лекции / 4 - Презентация - Полиморфизм
.pdfЦентрдистанционногообучения
Лекция 4 Программирование на Java
ФИО преподавателя: Зорина Наталья Валентиновна e-mail: zorina@mirea.ru,zorina_n@mail.ru
Online-edu.mirea.ru
online.mirea.ru
Центрдистанционногообучения
Тема лекции:
«Полиморфизм в Java»
online.mirea.ru
Центрдистанционногообучения
Содержание
•Полиморфизм и интерфейсные ссылки
•Использование полиморфизма при программировании
•Работа со строками
•Работа с графикой
online.mirea.ru
Центрдистанционногообучения
Реализация полиморфизма в Java
Полиморфизм является одним из принципов объектноориентированного программирования, и позволяет нам создавать универсальные конструкции программного обеспечения:
•использование наследования для создания полиморфных ссылки
•использование интерфейсов для создания полиморфных ссылок
•использование полиморфизма для реализации универсальных алгоритмов, например сортировки и поиска
9-4
online.mirea.ru
Центрдистанционногообучения
Связывание
• Рассмотрим строчки кода:
Example obj = new Example();
obj.doIt();
•В тот самый момент, когда происходит вызов метода, то происходит его связывание с определением метода в классе
•Если это связывание происходит во время компиляции, то во время
вызова метода всегда будет работать именно эта строка, всегда, когда происходит вызов
•Тем не менее, Java позволяет выполнить отсрочку связываниявыполнить связывание только во время выполнения - это называется динамическое связывание или позднее связывания
•Позднее связывание обеспечивает гибкость в разработке и осуществлении программ
9-5
online.mirea.ru
Центрдистанционногообучения
Полиморфизм
Термин полиморфизм в буквальном смысле переводится как "имеющий много форм".
Разновидности проявления полиморфизма:
•Полиморфная ссылка является переменной, которая может относиться к различным типам объектов в разные моменты времени
•Метод вызываемый с помощью полиморфной ссылки может изменяться от одного вызова к другому
Запомните! Все ссылки на объекты в Java являются потенциально полиморфными
9-6
online.mirea.ru
Центрдистанционногообучения
Интерфейсы
•Библиотека стандартных классов Java содержит много полезных интерфейсов
•Интерфейс Comparable одержит один абстрактный метод, называемый compareTo, которая используется для сравнивать два объекта
• Мыобсудимего |
compareTo при обсуждении класса |
String |
|
•Класс String реализует Comparable, то дает нам возможность поставить строки в лексикографическом порядке
online.mirea7.ru
Центрдистанционногообучения
Интерфейс Comparable
•Любой класс может реализовать Comparable чтобы обеспечить механизм для сравнения объектов этого типа
if (obj1.compareTo(obj2) < 0)
System.out.println ("obj1 is less than obj2");
• |
Значение,возвращаемое |
compareTo должнобыотрицательнымесли |
obj1 |
||
|
obj1 меньшечем |
obj2, 0еслиониравны |
, иположительно,если |
||
|
большечем |
obj2 |
|
|
|
• |
Когдапрогроеаммитируетклас, оторыйреализуетс |
|
интерфейс |
||
|
Comparable,тодолженследэтоамеренияватьу |
|
|
online.mirea8.ru
Центрдистанционногообучения
Интерфейс Iterator
•Итератор создается формально, реализовав интерфейс Iterator, который содержит три метода
•Метод hasNext возвращает логический результат -
истинно, если есть элементы которые остались для обработки
•Метод next метод возвращает следующий объект в итерации
•Метод remove удаляет объект, который совсем недавно, возвратил next
online.mirea9.ru
Центрдистанционногообучения
Интерфейс Iterator
•Реализуя интерфейс Iterator, a класс формально устанавливает, что объекты этого типа являются итераторы
•Программист должен решить, как наилучшим образом реализовать функции итератора
•После того, как появилась для версия for-each для цикла можно использовать для обработки элементов с помощью итераторов
online.mirea10.ru