Содержание
- 2. Классы-оболочки В языке Java существуют классы-оболочки, которые являются объектным представлением восьми примитивных типов. Все классы-оболочки являются
- 3. Пример упаковки и распаковки int a = 5; Integer b = a; // автоупаковка Integer c
- 4. Примитивные типы и обёртки
- 5. Зачем нужны оболочки Разработчиками языка Java было принято решение отделить примитивные типы и классы-оболочки, указав при
- 6. Практика Создайте объект типа Double, и изучите список методов, предоставляемых этим классом. Создайте объект на основе
- 7. Обобщения (generics) Нередко, создаваемые разработчиками алгоритмы и коллекции могут быть успешно использованы для разных типов данных
- 8. Безопасность int x = 31; String s = "hello"; ArrayList array = new ArrayList(); array.add(x); //
- 9. Упаковка и распаковка В примере используется стандартный класс ArrayList из пакета java.util, который представляет коллекцию объектов.
- 10. Устройство ArrayList ArrayList устроен как массив ссылок типа Object, что позволяет добавлять в коллекцию переменные любого
- 11. Проблемы Упаковка и распаковка (boxing и unboxing) ведут к снижению производительности, поскольку система должна выполнить необходимые
- 12. Хранение ссылок Следует отметить, что если хранить в коллекции объекты ссылочных (не примитивных) типов, то снижения
- 13. Решение Обе проблемы смогут решить обобщённые типы. Они позволяют указать конкретный тип данных, который будет использоваться
- 14. Обобщённая версия int x = 32; String s = "hello"; ArrayList ar = new ArrayList ();
- 15. Комментарии к примеру Так как теперь используется обобщённая версия класса ArrayList, то нужно будет задать определённый
- 16. Пример generic-класса (Point) https://git.io/vokjC
- 17. Два параметра типа https://git.io/vot6i
- 18. Raw types (сырые типы) Forest f = new Forest(); f.setInhabitant1(new Fairy()); f.setInhabitant2(new Elf()); f.setInhabitant2(new Fairy()); Fairy
- 19. Определение Сырой тип — это имя обобщённого класса или интерфейса без аргументов типа. Можно часто увидеть
- 20. Пример с котиками https://git.io/voIfe
- 21. Ограниченный тип В некоторых случаях имеет смысл ограничить типы, которые можно использовать в качестве аргументов в
- 22. Ограничение параметра типа https://git.io/votrb class AverageCalculator {
- 23. Соглашение об именовании Переменные типа именуются одной буквой в верхнем регистре. Это позволяет легко отличить переменную
- 24. Generic method https://git.io/votdx
- 25. Generic constructor https://git.io/votFV Конструкторы могут быть обобщёнными как в обобщённых, так и в необобщённых классах.
- 26. Generic interface Iterable Comparable https://git.io/votbd
- 27. Обобщения и наследование Можно присвоить объекту одного типа объект другого типа, если эти типы совместимы. Например,
- 28. Обобщения и наследование В объектно-ориентированной терминологии это называется связью «является» (“is a”). Так как Integer является
- 29. Обобщения и наследование Это также верно для обобщений. Можно осуществить вызов обобщённого типа, передав Number в
- 30. Обобщения и наследование void boxTest(Box n) { /* ... */ } Можно ли будет передать в
- 31. Важно запомнить! Для двух типов A и B (например, Number и Integer), MyClass не имеет никакой
- 32. Неизвестный тип (wildcard) В обобщённом коде иногда встречается знак вопроса (?), называемый подстановочным символом, и означает
- 33. Unbounded wildcard https://git.io/vothz Если просто использовать подстановочный символ , то получится подстановочный символ без ограничений. Например,
- 34. Зачем нужен wildcard
- 35. Зачем нужен wildcard
- 36. Upper bounded wildcard Можно использовать подстановочный символ, ограниченный сверху, чтобы ослабить ограничения для переменной класса. Например,
- 37. Пример на UBW https://git.io/voqe2
- 38. Lower bounded wildcard Ограниченный снизу подстановочный символ ограничивает неизвестный тип так, чтобы он был либо указанным
- 39. Почему обобщения не работают с примитивными типами? http://stackoverflow.com/questions/2721546/why-dont-java-generics-support-primitive-types Generics in Java are an entirely compile-time construct
- 40. Стирание типа Обобщения были введены в язык программирования Java для обеспечения более жёсткого контроля типов во
- 41. Стирание типа
- 42. Стирание типа
- 43. Стирание типа
- 44. На тему стирания типов http://www.journaldev.com/1663/java-generics-example-method-class-interface#type-erasure http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.html#FAQ101
- 45. Чего делать нельзя
- 46. Чего делать нельзя
- 47. Чего делать нельзя
- 48. Чего делать нельзя
- 49. Чего делать нельзя It's because Java's arrays (unlike generics) contain, at runtime, information about its component
- 50. Что почитать про обобщения https://urvanov.ru/2016/04/28/java-8-%D0%BE%D0%B1%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F/ http://rsdn.ru/article/java/genericsinjava.xml http://developer.alexanderklimov.ru/android/java/generic.php http://www.k-press.ru/cs/2008/3/generic/generic.asp http://www.quizful.net/post/java-generics-tutorial http://javarevisited.blogspot.com/2011/09/generics-java-example-tutorial.html https://uk.wikipedia.org/wiki/%D0%A3%D0%B7%D0%B0%D0%B3%D0%B0%D0%BB%D1%8C%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D0%B2_Java http://docs.oracle.com/javase/tutorial/extra/generics/morefun.html
- 52. Скачать презентацию

















































Турнир смекалистых
Презентация на тему Виды моделей баз данных
Устройство ПК
Кроссворд. Обработка графической информации
HTML Tables
Критерии выделения (на основе характера связи с обозначаемым объектом)
parProgr04
Компьютерная арифметика
Презентация на тему Моделирование как метод познания (9 класс)
Собрание для пожертвования
Выбор вебинарной платформы. Знакомство с Pruffme
История развития компьютерной техники
Эквивалентное разбиение. Анализ граничных значений
Что такое информатика
Презентация на тему Всемирная паутина
Социальные сервисы сети Интернет
ТЗ на главную страницу. Шаблон
Урок 8. Программное обеспечение(дз)
Источники справочной информации по диагностике сетей
Технология GPGPU. Лекция 4
Программа Full Survice
Журнал ShowKids. Биография группы
Противодействие наркопреступности в сети Интернет
Aplikací pro cestování a dopravu
Работа с формулами
Условный алгоритм
Компьютерные сети. Функции канального уровня. (Тема 5)
Модуляция и демодуляция