Презентация Узагальнене програмування на мові Java (Generics). Лекція 4 онлайн

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



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



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

№1 слайд
Мова програмування Java та
Содержание слайда: Мова програмування Java та технології J2EE Модуль “Мова програмування Java” Лекція 4. Узагальнене програмування на мові Java (Generics).

№2 слайд
Приклад без застосування
Содержание слайда: Приклад без застосування узагальнень Перевантаження коду змінними типу Object public class Box { private Object object; public void add(Object object) { this.object = object; } public Object get() { return object; } } Перевантаження коду приведенням типів public static void main(String[] args) { Box integerBox = new Box(); // домовимося передавати в // Box значення Integer integerBox.add("10"); // увага – це значення типу String ... Integer someInteger = (Integer)integerBox.get();// помилка //часу виконання } Якщо негаразд із типами - помилка часу виконання java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

№3 слайд
Узагальнення Generics Основн
Содержание слайда: Узагальнення (Generics) Основні класи задач, які потребують застосування узагальнень: Розробка функцій-утиліт для колекцій (пошук, max, min, avg, sum тощо) Розробка контейнерів для об’єктів різних типів (стек, колекція тощо) Мотивація для generics: Отримувати на етапі компіляції помилки приведення типів Обійтись без приведення типів “вручну” Отримати більш безпечний код, який краще пишеться та читається

№4 слайд
стор я появи узагальнень в
Содержание слайда: Історія появи узагальнень в Java Узагальнення побачили світ в J2SE 5 (2004р.) Задача - розширити систему типів мови, що широко застосовується і до якої висуваються вимоги жорсткої зворотної сумісності Роботу розпочато у 1999р. Деякі деталі із проробки задачі: Специфікація “JSR-014: Adding Generics to the Java Programming Language” розроблялася протягом 1999-2004 Розширення системи типів підстановочними типами (wildcards) здійснено у співпраці Sun та університету м.Орхус (Данія) Цікаво – один із відомих уродженців м.Орхус – Бйорн Страуструп, автор мови C++

№5 слайд
Приклад застосування
Содержание слайда: Приклад застосування узагальнень Замість Object застосовуємо “типи-параметри” public class Box<T> { private T t; public void add(T t) { this.t = t; } public T get() { return t; } } Не потрібно приводити типи public static void main(String[] args) { Box<Integer> integerBox = new Box<Integer>(); integerBox.add("10"); // Помилка компіляції Integer someInteger = integerBox.get(); // Не потрібне приведення // типів } Негаразд із типами - помилка компіляції

№6 слайд
Реал зац я узагальнень в Java
Содержание слайда: Реалізація узагальнень в Java Це елементи мови Це функціональність компілятора, яка дозволяє виявити певні помилки на стадії компіляції Це не функціональність JVM Type erasure - На стадії виконання (runtime) уся інформація про узагальнення стирається Через вимоги жорсткої зворотної сумісності – старий байт-код повинен працювати на нових JVM Узагальнення не потребують додаткових ресурсів часу виконання

№7 слайд
Елементи мови, як
Содержание слайда: Елементи мови, які узагальнюються Що може бути узагальнене Класи але не всі, див. нижче Інтерфейси Методи Конструктори Які типи можуть бути параметрами для узагальнення Типи-посилання (класи, інтерфейси, масиви) Які типи не можуть бути параметрами для узагальнення Примітивні типи (але класи-оболонки можуть) Які класи не можуть бути узагальнені Enum Чому? Клас Throwable та його нащадки Обмеження викликане тим, що механізм catch у JVM не працює з параметризованими класами

№8 слайд
Узагальнен типи Узагальнен
Содержание слайда: Узагальнені типи Узагальнені типи – узагальнені класи та узагальнені інтерфейси public class Box<T> { private T t; public void add(T t) { this.t = t; } public T get() { return t; } } Box – узагальнений клас, який вводить змінну типу T Декілька змінних типу class Suitecase<T,U> {…} Успадкування для узагальнених класів/інтерфейсів Suitecase<T,U> extends Box<T> {…}

№9 слайд
Узагальнен типи. Продовження
Содержание слайда: Узагальнені типи. Продовження Box<T> - узагальнений клас із змінною типу T Box<Integer> - параметризований тип, із параметром (аргументом) Integer Приклади Vector<String> Seq<Seq<A>> Collection<Integer> Pair<String,String> Iterator<int[]> - параметризація масивом Виклик конструктора Box<Integer> integerBox = new Box<Integer>();

№10 слайд
Узагальнен методи
Содержание слайда: Узагальнені методи Узагальнений метод class Inspector { public <T> void inspect(T t) { System.out.println(t.getClass().getName()); } } Виклик методу Inspector i = new Inspector(); String s = "Hello"; i.inspect(s); // короткий синтаксис i.<String>inspect(s); // повний синтаксис Узагальнення конструкторів відбувається аналогічно

№11 слайд
Обмеження для зм нних типу
Содержание слайда: Обмеження для змінних типу Подібного немає в C++ extends & extends – означає, що параметр типу повинен успадковувати вказаний клас чи реалізовувати вказані інтерфейси & - дозволяє вказати декілька типів, які мають бути успадковані або реалізовані (один клас, декілька інтерфейсів). “,” застосувати не можна, оскільки це роздільник між змінними типу class Inspector { public <T extends Number&Comparable> void inspect(T t) {…} } Inspector i = new Inspector(); String s = "Hello"; i.inspect(s); // помилка компіляції, // оскільки s - це не Number & Comparable

№12 слайд
Whildcards п дстановочн типи
Содержание слайда: Whildcards (підстановочні типи). Мотивація public void boxTest(Box<Number> n) { ...} boxTest(new Box<Integer>()); // compile error boxTest(new Box<Double>()); // compile error

№13 слайд
Whildcards п дстановочн типи
Содержание слайда: Whildcards (підстановочні типи). Мотивація Опція 1 public void boxTest(Box<?> n) { ... } boxTest(new Box<Integer>()); // ok boxTest(new Box<Double>()); // ok boxTest(new Box<String>()); // ok? Опція 2 public void boxTest(Box<? extends Number> n) { ...} boxTest(new Box<Integer>()); // ok boxTest(new Box<Double>()); // ok

№14 слайд
Wildcards details
Содержание слайда: Wildcards details Застосування “?” тільки для тих type arguments в полях/локальних змінних/методах/конструкторах/декларації класів

№15 слайд
Bounded wildcards Bounded
Содержание слайда: Bounded wildcards Bounded wildcards <? extends Тип> - будь-який тип-нащадок Тип <? super Тип> - будь-який тип-пращур Тип

№16 слайд
Let s look to java source
Содержание слайда: Let’s look to java source

№17 слайд
Deep dive to java source
Содержание слайда: Deep dive to java source

№18 слайд
Содержание слайда:

№19 слайд
Real case of java generic
Содержание слайда: Real case of java generic constructor

№20 слайд
Л тература The Java Tutorial.
Содержание слайда: Література The Java Tutorial. http://download.oracle.com/javase/tutorial/java/TOC.html James Gosling, Bill Joy, Guy Steele. The Java Language Specification. - Addison Wesley. - 3 edition. - 2005. - 688p. -http://java.sun.com/docs/books/jls/

Скачать все slide презентации Узагальнене програмування на мові Java (Generics). Лекція 4 одним архивом: