Презентация Объектно-ориентированное программирование. Механизмы рефлексии. (Занятие 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
- Автор:неизвестен
Слайды и текст к этой презентации:
№5 слайд
![Участники механизма рефлексии](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img4.jpg)
Содержание слайда: Участники механизма рефлексии
Класс java.lang.Class
Класс является метаклассом по отношению к другим типам
Экземпляры класса Class описывают классы и интерфейсы выполняемого приложения
Методы класса Class позволяют исследовать содержимое описываемого класса и его свойства
Класс java.lang.ClassLoader
Реализует механизмы загрузки
классов
№6 слайд
![Участники механизма рефлексии](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img5.jpg)
Содержание слайда: Участники механизма рефлексии
Пакет java.lang.reflect
Содержит ряд дополнительных и вспомогательных классов
Field
Описывает поле объекта
Method
Описывает метод объекта
Constructor
Описывает конструктор объекта
Modifier
Инкапсулирует работу с модификаторами
Array
Инкапсулирует работу с массивами
№7 слайд
![Получение представления](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img6.jpg)
Содержание слайда: Получение представления класса
Метод Class Object.getClass()
Возвращает ссылку на представление класса, экземпляром которого является объект
Псевдополе Object.class
Ссылка на представление указанного класса
Метод static Class Class.forName(...)
Возвращает ссылку на представление класса, полное имя которого указывается параметром типа String
№8 слайд
![Получение представления](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img7.jpg)
Содержание слайда: Получение представления класса
Метод Class[] Class.getClasses()
Возвращает ссылку на массив ссылок на объекты Class вложенных типов
Метод Class Class.getDeclaringClass()
Для вложенных типов возвращает ссылку на объект Class внешнего типа
Метод Class[] Class.getInterfaces()
Возвращает ссылки на описания интерфейсов, от которых наследует тип
Метод Class Class.getSuperclass()
Возвращает ссылку на описание родительского класса
№10 слайд
![Возможности класса Class](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img9.jpg)
Содержание слайда: Возможности класса Class
Загрузка класса в JVM по его имени
static Class forName(String name)
Определение вида типа
boolean isInterface()
boolean isLocalClass()
Получение родительских типов
Class getSuperclass()
Class[] getInterfaces()
Получение вложенных типов
Class[] getClasses()
Создание объекта
Object newInstance()
№11 слайд
![Возможности класса Class](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img10.jpg)
Содержание слайда: Возможности класса Class
Получение списка всех полей и конкретного поля по имени
Field[] getFields()
Field getField(...)
Получение списка всех методов и конкретного метода по имени и списку типов параметров
Method[] getMethods()
Method[] getMethod(...)
Получение списка всех конструкторов и конкретного конструктора по списку типов параметров
Constructor[] getConstructors()
Constructor getConstructor(...)
№12 слайд
![Передача параметров в методы](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img11.jpg)
Содержание слайда: Передача параметров
в методы
Поскольку на момент написания программы типы и даже количество параметров неизвестно, используется другой подход:
Ссылки на все параметры в порядке их следования помещаются в массив типа Object
Если параметр имеет примитивный тип, то в массив помещается ссылка на экземпляр класса-оболочки соответствующего типа, содержащий необходимое значение
Возвращается всегда тип Object
Для ссылочного типа используется приведение типа или рефлексивное исследование
Для примитивных типов возвращается ссылка на экземпляр класса-оболочки, содержащий возвращенное значение
№13 слайд
![Создание экземпляров классов](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img12.jpg)
Содержание слайда: Создание экземпляров классов
Метод Object Class.newInstance()
Возвращает ссылку на новый экземпляр класса, используется конструктор по умолчанию
Метод
Object Constructor.newInstance(
Object[] initArgs)
Возвращает ссылку на новый экземпляр класса, с использованием конструктора и указанными параметрами конструктора
№14 слайд
![Вызов методов Прямой вызов](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img13.jpg)
Содержание слайда: Вызов методов
Прямой вызов
Если на момент написания кода известен тип-предок загружаемого класса
Приведение типа и вызов метода
Вызов через экземпляр класса Method
Object Method.invoke(Object obj, Object[] args)
obj – ссылка объект, у которого должен быть вызван метод
принято передавать null, если метод статический
args – список параметров для вызова методов
№16 слайд
![Класс ClassLoader Экземпляры](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img15.jpg)
Содержание слайда: Класс ClassLoader
Экземпляры класса отвечают
за загрузку классов
в виртуальную машину
Это абстрактный класс,
не имеющий ни одного
абстрактного метода
Классы-наследники должны в каком-то смысле расширять возможности виртуальной машины по загрузке классов
Объекты загрузчиков образуют иерархию (родительский объект указывается как параметр защищённых конструкторов)
№17 слайд
![Основные методы класса](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img16.jpg)
Содержание слайда: Основные методы класса ClassLoader
public Class loadClass(String name)
Проверяет, не был ли класс загружен раньше
Вызывает аналогичный метод родительского объекта
Вызывает метод findClass(), чтобы найти класс
Не стоит переопределять этот метод
protected Class findClass(String name)
Ищет и загружает класс по имени специфическим для данного загрузчика способом
Этот метод и нужно переопределять
protected final Class defineClass(
String name, byte[] b, int off, int len)
Загружает класс из указанного набора байтов
№22 слайд
![Особенности аннотаций В любом](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img21.jpg)
Содержание слайда: Особенности аннотаций
В любом случае аннотация предшествует объявлению
Все аннотации наследуют от интерфейса java.lang.annotation.Annotation
Во время выполнения программы информация об аннотациях извлекается средствами рефлексии
После получения ссылки на объект аннотации у него можно вызывать методы, возвращающие заданные при аннотировании значения
№25 слайд
![Правила сохранения аннотаций](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img24.jpg)
Содержание слайда: Правила сохранения аннотаций
Правила сохранения аннотаций определяют, в какой момент аннотации будут уничтожены
Правила задаются с помощью перечислимого типа java.lang.annotation.RetentionPolicy
Существует три правила:
SOURCE
аннотации отбрасываются на этапе компиляции
CLASS
сохраняются в байт-коде, но недоступны JVM во время выполнения программы
RUNTIME
доступны JVM во время выполнения программы
В зависимости от цели аннотации ей задается то или иное правило сохранения
№27 слайд
![Стандартные аннотации работа](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img26.jpg)
Содержание слайда: Стандартные аннотации
(работа с аннотациями)
@Retention
Применяется к аннотациям, позволяет задать правило сохранения
@Documented
Применяется к аннотациям, указывает, что она должна быть документирована
@Target
Применяется к аннотациям, позволяет указать типы объектов, к которым данная аннотация может применяться
@Inherited
Применяется к аннотациям классов, указывает, что данная аннотация будет унаследована потомками класса
№28 слайд
![Стандартные аннотации](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img27.jpg)
Содержание слайда: Стандартные аннотации
(инструкции компилятора)
@Override
Применяется к методам, указывает, что метод должен переопределять метод родительского класса или реализовывать метод родительского интерфейса
@Deprecated
Указывает на то, что объявление является устаревшим или вышедшим из употребления
@SupressWarnings
Указывает на то, что указанные виды предупреждений компилятора не будут показываться
№29 слайд
![Особенности аннотаций](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img28.jpg)
Содержание слайда: Особенности аннотаций
Аннотация не может наследовать другую аннотацию
Методы аннотаций не должны иметь параметров
Возвращаемый тип методов:
примитивный тип
String
Class
перечислимый тип
другой тип аннотации
массив элементов одного из вышеперечисленных типов
Аннотации не могут быть настраиваемыми
Методы не могут объявлять исключения
№31 слайд
![Дополнительные источники](/documents_6/7d792727144f0c4fe29fc7e24942e7c2/img30.jpg)
Содержание слайда: Дополнительные источники
Арнолд, К. Язык программирования 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) одним архивом:
Похожие презентации
-
Объектно-ориентированное программирование. Collections Framework. (Занятие 7)
-
Объектно-ориентированное программирование. Отношения между типами и особенности разработки. (Занятие 11)
-
Кодирование основных типов алгоритмических структур на языках объектно — ориентированного и процедурного программирования
-
Объектно-ориентированное программирование на алгоритмическом языке С
-
Объектноориентированное программирование. Наследование
-
Объектноориентированное программирование. Информатика
-
Основы объективно-ориентированного программирования в среде Lazarus . Lazarus циклы
-
Основы объективно-ориентированного программирования в среде Lazarus. Повторение
-
Связи между классами. Объектно-ориентированное программирование. (Лекция 3)
-
Основы объектно-ориентированного программирования. (Лекция 1)