Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 60691
Invision Power ... 58593
Организация зап... 58566
Модуль Forms 57057
Приложение «Про... 56808
Оператор выбора... 56240
Создание отчето... 55993
Подключение Mic... 55851
ТЕХНОЛОГИИ ДОСТ... 52192
Программируемая... 49485
Пример работы с... 48011
Имитационное мо... 47741
21 ошибка прогр... 42703
Реклама
Сейчас на сайте
Гостей: 15
На сайте нет зарегистрированных пользователей

Пользователей: 13,020
новичок: oozzy
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Двунаправленный динамический список на Delphi + Блок схемы
База данных склада на Delphi + Схема БД
База данных студентов на Turbo Pascal (Списки) + Пояснительная записка

Реклама


Warning: preg_replace() [function.preg-replace]: Parameter mismatch, pattern is a string while replacement is an array in /var/www/u6406227/public_html/codingrus.ru/articles.php on line 38
Статьи: JAVA/JS
Методы-подставки
В тех случаях, когда стирание информации о настраиваемом типе в переопределенном методе производного класса не выполняет такого же стирания, как метод в его суперклассе, компилятору приходится вставлять в класс метод-подставку (bridge method). В подобной ситуации генерируется метод, выполняющий стирание информации о настраиваемом типе в суперклассе и уже этот метод вызывает метод производного класса, стирающий информацию о типах заданную в подклассе. Конечно, методы-подставки появляются только на уровне байт-кода, они скрыты от Вас и Вы не можете ими воспользоваться.

Настраиваемые интерфейсы
Кроме настраиваемых классов и методов Вы можете создавать настраиваемые интерфейсы (generic interface). Они задаются так же, как настраиваемые классы.

Настраиваемые конструкторы
Конструкторы также могут быть настраиваемыми, даже если их класс не является настраиваемым типом.

Настраиваемые типы
Среди множества расширений языка, включенных в Java 2 версии 5.0, средства настройки типов (generics) оказали на язык наиболее глубокое влияние. Они не только добавили новый синтаксический элемент в язык Java, но и вызвали изменения во многих классах и методах API (Application Programming Interface, Интерфейс прикладного программирования) ядра. Благодаря применению настраиваемых типов стало возможным создавать классы, интерфейсы и методы, работающие с различными типами данных, при этом обеспечивая безопасность типов. Многие алгоритмы логически идентичны вне зависимости от используемых типов данных. Например, механизм поддержки стека одинаков для стеков, хранящих элементы типа Integer, String, Object или Thread. С помощью настраиваемых типов Вы можете определить один алгоритм независимо от конкретного типа данных и затем применять его без дополнительной доработки к различным типам данных. Функциональные возможности настраиваемых типов коренным образом меняют подход к написанию программ на языке Java.

Настраиваемые типы и коллекции
Наиболее важной сферой применения настраиваемых типов можно считать подсистему Collections Framework. В ее состав вошли классы, реализующие разные структуры данных, такие как списки, стеки и очереди.

Настраиваемый класс с двумя параметрами типа
Вы можете объявить несколько параметров типа в настраиваемом типе данных. Для определения двух или нескольких параметров типа используйте список, разделенный запятыми.

Настраиваемый подкласс
Не настраиваемый класс вполне может быть суперклассом для настраиваемого подкласса.

Некоторые ограничения применения настраиваемых типов
Существует несколько ограничений, которые Вам следует помнить при использовании настраиваемых типов. Они касаются создания объектов настраиваемого типа, статических членов класса, исключений и массивов. Рассмотрим каждое из них в отдельности.

Несколько примеров применения класса Scanner
Включение класса Scanner в язык Java превратило прежде утомительное и скучное занятие в легкое и приятное. Для того чтобы понять, почему это произошло, рассмотрим несколько примеров.

Область применения цикла for в стиле for-each
Поскольку цикл for в стиле for-each может обрабатывать массив только последовательно от начала к концу, Вы можете подумать, что область его применения ограничена, но это неверно. Множество алгоритмов нуждается именно в такой обработке. Один из наиболее общих примеров — поиск.

Обработка многомерных массивов в цикле
Улучшенная версия цикла for может применяться для обработки многомерных массивов (multidimensional array).

Ограниченные метасимвольные аргументы
Метасимвольные аргументы могут ограничиваться почти так же, как параметры типа. Ограничение метасимвольных аргументов особенно важно, когда Вы создаете настраиваемый тип, который будет оперировать иерархией классов.

Ограниченные типы


Описание перечислимого типа
Начиная с выхода первой версии языка Java, в нем было пропущено одно средство, в котором нуждалась большая часть программистов: перечислимые типы или перечисления (enumirations). В простейшей форме перечислимый тип — это список именованных констант. Хотя язык Java предлагал другие способы для реализации подобной функциональности, например переменные с модификатором поля final, многие программисты были лишены концептуальной чистоты перечислимого типа, который поддерживается в других популярных языках программирования. С выходом Java 2 версии 5.0 перечислимый тип стал доступен и программистам, пишущим на языке Java. На первый взгляд перечислимый тип языка Java кажется подобным одноименному типу в других языках программирования. Но это подобие обманчиво. В языках, таких как C++, перечислимые типы — просто списки именованных целочисленных констант. В языке Java перечислимый тип определен как класс. Превращение перечислимого типа в класс существенно расширило его возможности. Например, в языке Java у перечислимого типа могут быть конструкторы, методы и поля. Таким образом, хотя перечислимые типы готовились несколько лет, реализация их в языке Java оправдала ожидания.

Описание средства "метаданные"
В версию Java 2 5.0 включена новая мощная функциональная возможность, названная метаданными (metadata), с ее помощью можно внедрять дополнительную информацию в исходный код. Эта информация, именуемая аннотациями или примечаниями (annotations), не изменяет алгоритм работы программы. Таким образом, аннотации оставляют семантику программы неизменной. Но эта информация может использоваться различными программными средствами, как во время разработки, так и во время установки программы. Например, аннотации могут обрабатываться генератором исходного кода. Хотя компания Sun называет это новое средство метаданными, более информативный термин "возможность аннотирования программ" так же применяется.
Страница 2 из 4 < 1 2 3 4 >
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
MpegPlay
Task Shedule
Переработанный пл...
3D Октаэдр
index.php + мод ...
PHP/MySQL для нач...
Dealer
БД сеть компьютер...
Редактор анимаций
Разработка Web-пр...
DiZsubmit
LaserTank [Исходн...
Приемы программир...
Delphi. Учимся на...
DeleteEdit
Binary2XMLDemo (Р...
PHP: настольная к...
Dnavigator
API (Применение A...
Создание лабиринт...

Топ загрузок
Приложение Клие... 100307
Delphi 7 Enterp... 77869
Converter AMR<-... 20021
Borland C++Buil... 10672
GPSS World Stud... 9246
Borland Delphi ... 7658
Turbo Pascal fo... 6884
Visual Studio 2... 4906
Калькулятор [Ис... 3992
FreeSMS v1.3.1 3486
Случайные статьи
Кроме того, любая ...
Алгоритм топологич...
Датчики приближения
Разделение физичес...
Программное обеспе...
PHP: удаление стро...
Страница, имеющая ...
Windows Server vNe...
Регистрация доменн...
2.6. Общая схема ...
Усовершенствование...
Инициализация Тайм...
В версии Android SDK
Новое оружие ICQ: ...
Жесткий диск
Инициализация посл...
Какова стратегия л...
Сам механизм RTTI ...
Использование комп...
Тестирование, поис...
Интересная тема дл...
Часто задаваемые в...
Пример создания та...
Прожигатетели врем...
Контейнеры и насле...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?