Содержание
- 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. Скачать презентацию

















































Комплекс автоматизированного управления конвейерами АУК-1М
Информация и информационные процессы
Расстояние между пачкой и клеймом
Авторизация и Аутентификация
Файловая система
Медиа-безопасность. Социальные сети
Эффективные мобильные приложения для изучения английского языка
Организация вычислений в электронных таблицах обработка числовой информации в электронных таблицах
Figma
Основы программирования (на языке Си). Циклические алгоритмы
Реляционная модель данных
Развитие подсистемы Доставка товаров
Работа с разделом Техническая поддержка. TPVision
Какие бывают виды PR в онлайне и как этому научиться
История развития компьютерной техники
Computers as ICT
Монтаж видео. Переходы
Диаграммы размещения
Огляд словника: Информатика. Новый систематизированый толковий словарь, Ф.С. Воройського
Сборки. Атрибуты
Форматный вывод
Комплексное решение для НТ на базе JMeter
26 ноября отмечается Всемирный день информации (World Information Day)
Дихотомический ключ
История, назначение, функции и виды операционных систем
ВКР: Использование метода машинного обучения на основе Q-обучения для управления роботом-манипулятором
История Слендермена
Как выбрать социальную сеть для своего бизнеса