Презентация Объектно-ориентированное программирование. Механизмы рефлексии. (Занятие 9) онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Объектно-ориентированное программирование. Механизмы рефлексии. (Занятие 9) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 31 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Объектно-ориентированное программирование. Механизмы рефлексии. (Занятие 9)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    31 слайд
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    288.34 kB
  • Просмотров:
    78
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Механизмы рефлексии
Содержание слайда: Механизмы рефлексии

№2 слайд
План лекции Рефлексия и её
Содержание слайда: План лекции Рефлексия и её возможности Участники механизма рефлексии Получение и работа со ссылкой на описание класса Вызов конструкторов и методов Управление загрузкой классов Аннотации

№3 слайд
Понятие рефлексии Рефлексия
Содержание слайда: Понятие рефлексии Рефлексия (от лат. Reflexio – обращение назад) – обращение субъекта на себя самого, на свое знание или на свое собственное состояние Рефлексия в Java – возможность программы анализировать саму себя, взаимодействуя с виртуальной машиной Java (JVM)

№4 слайд
Возможности механизма
Содержание слайда: Возможности механизма рефлексии Загрузка типов во время исполнения программы Исследование структуры типов и их элементов Создание экземпляров классов Вызов методов Загрузка классов из набора байтов

№5 слайд
Участники механизма рефлексии
Содержание слайда: Участники механизма рефлексии Класс java.lang.Class Класс является метаклассом по отношению к другим типам Экземпляры класса Class описывают классы и интерфейсы выполняемого приложения Методы класса Class позволяют исследовать содержимое описываемого класса и его свойства Класс java.lang.ClassLoader Реализует механизмы загрузки классов

№6 слайд
Участники механизма рефлексии
Содержание слайда: Участники механизма рефлексии Пакет java.lang.reflect Содержит ряд дополнительных и вспомогательных классов Field Описывает поле объекта Method Описывает метод объекта Constructor Описывает конструктор объекта Modifier Инкапсулирует работу с модификаторами Array Инкапсулирует работу с массивами

№7 слайд
Получение представления
Содержание слайда: Получение представления класса Метод Class Object.getClass() Возвращает ссылку на представление класса, экземпляром которого является объект Псевдополе Object.class Ссылка на представление указанного класса Метод static Class Class.forName(...) Возвращает ссылку на представление класса, полное имя которого указывается параметром типа String

№8 слайд
Получение представления
Содержание слайда: Получение представления класса Метод Class[] Class.getClasses() Возвращает ссылку на массив ссылок на объекты Class вложенных типов Метод Class Class.getDeclaringClass() Для вложенных типов возвращает ссылку на объект Class внешнего типа Метод Class[] Class.getInterfaces() Возвращает ссылки на описания интерфейсов, от которых наследует тип Метод Class Class.getSuperclass() Возвращает ссылку на описание родительского класса

№9 слайд
Пример получения информации о
Содержание слайда: Пример получения информации о классе

№10 слайд
Возможности класса Class
Содержание слайда: Возможности класса Class Загрузка класса в JVM по его имени static Class forName(String name) Определение вида типа boolean isInterface() boolean isLocalClass() Получение родительских типов Class getSuperclass() Class[] getInterfaces() Получение вложенных типов Class[] getClasses() Создание объекта Object newInstance()

№11 слайд
Возможности класса Class
Содержание слайда: Возможности класса Class Получение списка всех полей и конкретного поля по имени Field[] getFields() Field getField(...) Получение списка всех методов и конкретного метода по имени и списку типов параметров Method[] getMethods() Method[] getMethod(...) Получение списка всех конструкторов и конкретного конструктора по списку типов параметров Constructor[] getConstructors() Constructor getConstructor(...)

№12 слайд
Передача параметров в методы
Содержание слайда: Передача параметров в методы Поскольку на момент написания программы типы и даже количество параметров неизвестно, используется другой подход: Ссылки на все параметры в порядке их следования помещаются в массив типа Object Если параметр имеет примитивный тип, то в массив помещается ссылка на экземпляр класса-оболочки соответствующего типа, содержащий необходимое значение Возвращается всегда тип Object Для ссылочного типа используется приведение типа или рефлексивное исследование Для примитивных типов возвращается ссылка на экземпляр класса-оболочки, содержащий возвращенное значение

№13 слайд
Создание экземпляров классов
Содержание слайда: Создание экземпляров классов Метод Object Class.newInstance() Возвращает ссылку на новый экземпляр класса, используется конструктор по умолчанию Метод Object Constructor.newInstance( Object[] initArgs) Возвращает ссылку на новый экземпляр класса, с использованием конструктора и указанными параметрами конструктора

№14 слайд
Вызов методов Прямой вызов
Содержание слайда: Вызов методов Прямой вызов Если на момент написания кода известен тип-предок загружаемого класса Приведение типа и вызов метода Вызов через экземпляр класса Method Object Method.invoke(Object obj, Object[] args) obj – ссылка объект, у которого должен быть вызван метод принято передавать null, если метод статический args – список параметров для вызова методов

№15 слайд
Пример вызова статического
Содержание слайда: Пример вызова статического метода

№16 слайд
Класс ClassLoader Экземпляры
Содержание слайда: Класс ClassLoader Экземпляры класса отвечают за загрузку классов в виртуальную машину Это абстрактный класс, не имеющий ни одного абстрактного метода Классы-наследники должны в каком-то смысле расширять возможности виртуальной машины по загрузке классов Объекты загрузчиков образуют иерархию (родительский объект указывается как параметр защищённых конструкторов)

№17 слайд
Основные методы класса
Содержание слайда: Основные методы класса ClassLoader public Class loadClass(String name) Проверяет, не был ли класс загружен раньше Вызывает аналогичный метод родительского объекта Вызывает метод findClass(), чтобы найти класс Не стоит переопределять этот метод protected Class findClass(String name) Ищет и загружает класс по имени специфическим для данного загрузчика способом Этот метод и нужно переопределять protected final Class defineClass( String name, byte[] b, int off, int len) Загружает класс из указанного набора байтов

№18 слайд
Пример использования
Содержание слайда: Пример использования загрузчика классов

№19 слайд
Пример использования
Содержание слайда: Пример использования загрузчика классов

№20 слайд
Метаданные В основе механизма
Содержание слайда: Метаданные В основе механизма метаданных лежат так называемые аннотации Аннотация – это «интерфейс» специфического вида, позволяющий задавать описания классов и их элементов Пример объявления аннотации:

№21 слайд
Особенности аннотаций
Содержание слайда: Особенности аннотаций Члены-методы имеют, скорее, смысл полей Тела этих методов будут создаваться автоматически Аннотациями можно снабжать классы, методы, поля, параметры, константы перечислимых типов и аннотации Пример снабжения аннотацией:

№22 слайд
Особенности аннотаций В любом
Содержание слайда: Особенности аннотаций В любом случае аннотация предшествует объявлению Все аннотации наследуют от интерфейса java.lang.annotation.Annotation Во время выполнения программы информация об аннотациях извлекается средствами рефлексии После получения ссылки на объект аннотации у него можно вызывать методы, возвращающие заданные при аннотировании значения

№23 слайд
Особенности аннотаций Для
Содержание слайда: Особенности аннотаций Для методов допускаются значения по умолчанию

№24 слайд
Особенности аннотаций Бывают
Содержание слайда: Особенности аннотаций Бывают одночленные аннотации Содержат один член и имеют сокращенную форму записи Бывают аннотации-маркеры Предназначены только для пометки элементов

№25 слайд
Правила сохранения аннотаций
Содержание слайда: Правила сохранения аннотаций Правила сохранения аннотаций определяют, в какой момент аннотации будут уничтожены Правила задаются с помощью перечислимого типа java.lang.annotation.RetentionPolicy Существует три правила: SOURCE аннотации отбрасываются на этапе компиляции CLASS сохраняются в байт-коде, но недоступны JVM во время выполнения программы RUNTIME доступны JVM во время выполнения программы В зависимости от цели аннотации ей задается то или иное правило сохранения

№26 слайд
Правила сохранения аннотаций
Содержание слайда: Правила сохранения аннотаций Задание правила сохранения производится с помощью аннотации java.lang.annotation.Retention По умолчанию задается правило CLASS Пример задания правила сохранения:

№27 слайд
Стандартные аннотации работа
Содержание слайда: Стандартные аннотации (работа с аннотациями) @Retention Применяется к аннотациям, позволяет задать правило сохранения @Documented Применяется к аннотациям, указывает, что она должна быть документирована @Target Применяется к аннотациям, позволяет указать типы объектов, к которым данная аннотация может применяться @Inherited Применяется к аннотациям классов, указывает, что данная аннотация будет унаследована потомками класса

№28 слайд
Стандартные аннотации
Содержание слайда: Стандартные аннотации (инструкции компилятора) @Override Применяется к методам, указывает, что метод должен переопределять метод родительского класса или реализовывать метод родительского интерфейса @Deprecated Указывает на то, что объявление является устаревшим или вышедшим из употребления @SupressWarnings Указывает на то, что указанные виды предупреждений компилятора не будут показываться

№29 слайд
Особенности аннотаций
Содержание слайда: Особенности аннотаций Аннотация не может наследовать другую аннотацию Методы аннотаций не должны иметь параметров Возвращаемый тип методов: примитивный тип String Class перечислимый тип другой тип аннотации массив элементов одного из вышеперечисленных типов Аннотации не могут быть настраиваемыми Методы не могут объявлять исключения

№30 слайд
Спасибо за внимание!
Содержание слайда: Спасибо за внимание!

№31 слайд
Дополнительные источники
Содержание слайда: Дополнительные источники Арнолд, К. Язык программирования Java [Текст] / Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. – М. : Издательский дом «Вильямс», 2001. – 624 с. Вязовик, Н.А. Программирование на Java. Курс лекций [Текст] / Н.А. Вязовик. – М. : Интернет-университет информационных технологий, 2003. – 592 с. Эккель, Б. Философия Java [Текст] / Брюс Эккель. – СПб. : Питер, 2011. – 640 с. Шилдт, Г. Java 2, v5.0 (Tiger). Новые возможности [Текст] / Герберт Шилдт. – СПб. : БХВ-Петербург, 2005. – 206 с. JavaSE at a Glance [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/overview/index.html, дата доступа: 21.10.2011. JavaSE APIs & Documentation [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/documentation/api-jsp-136079.html, дата доступа: 21.10.2011.

Скачать все slide презентации Объектно-ориентированное программирование. Механизмы рефлексии. (Занятие 9) одним архивом: