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

















































Типы планирования. Алгоритмы планирования. Примеры реализации алгоритмов планирования в современных операционных системах
Muffin сorporation
Википедия (Wikipedia)
Системы передачи синхронной цифровой иерархии
Таблици в HTML
Software engineering
Системы счисления
Технологии программирования. Работа с файлами
Презентация на тему Топологическая сортировка отсечением вершин
Вычислительные системы, сети и телекоммуникации
Co są sieci nieuronowe
Процедуры и функции. Лабораторная работа
Делегаты. Лямбда выражения. События. Лекция 6
Телеграм. Канал и особенности(видеотрансляции,аудиотрансляции)
Устройства компьютера. Компьютерные программы (Бондарев А., 10.11.21)
Город мечты
Современные инструменты для разработки и проектирования цифровой части ПС
Лидеры рунета: собственность и финансы
CISCO IOS. Internetwork Operating System
Объектно-ориентированное визуальное программирование. Знакомство с языком программирования Visual Basic for Application
Использование текстовых файлов в Паскале
ПМ 06 Название модуля
История развития Интернета
Инфраструктура АСУП
Процесс управления
Профилактика интернет зависимости
Схема технологии обеспечения электронным талоном на проезд (ЭТ ФСС). Предоставление билетному кассиру паспорта
Подготовка сервера для загрузки к СХД (FC SAN Boot)