- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Java: руководство для начинающих (ЛП) - Шилдт Герберт
Шрифт:
Интервал:
Закладка:
Что такое упаковка и распаковка? В каких случаях производится автоупаковка и автораспаковка?Упаковка означает включение значения простого типа в объект оболочки, а распаковка — извлечение значения из объекта оболочки. Автоупаковка означает автоматическую упаковку значения без явного создания объекта, тогда как при автораспаковке значение простого типа автоматически извлекается из объекта оболочки безявного вызова соответствующего метода, например intValue ().
Измените следующий фрагмент кода таким образом, чтобы в нем производилась автоупаковка:Short val = new Short(123);Это задание имеет следующее решение:Short val = 123;
Объясните, что такое статический импорт?Статический импорт означает размещение статических членов класса или интерфейса в глобальном пространстве имен. Это позволяет использовать статическиечлены без указания имени соответствующего класса или интерфейса.
Какие действия выполняет приведенный ниже оператор?import static java.lang.Integer.parselnt;Этот оператор помещает в глобальное пространство имен метод parselnt () изкласса оболочки типа Integer.
Следует ли употреблять статический импорт от случая к случаю или желательно импортировать статические члены всех классов?Статический импорт уместен только в отдельных случаях. Если доступным окажетсяслишком много статических членов, это может привести к конфликтам имен и нарушению структуры кода.
Синтаксис аннотации основывается на .интерфейсе
Какая аннотация называется маркером?Маркер — это аннотация без аргументов.
Аннотации применимы только к методам. Верно или неверно?Неверно. Любое объявление может быть аннотировано.Глава 13. Обобщения
Обобщения очень важны, поскольку они позволяют создавать код, который:а) обеспечивает типовую безопасность;б) пригоден для повторного использования;в) отличается высокой надежностью;г) обладает всеми перечисленными выше свойствами.Ответ: г) код обладает всеми перечисленными выше свойствами.
Можно ли указывать простой тип в качестве аргумента типа?Нет, нельзя. В качестве аргументов типа можно указывать только типы объектов.
Как объявить класс FlightSched с двумя параметрами типа?Это задание имеет следующее решение:class FlightSched {
Измените ваш ответ на вопрос 3 таким образом, чтобы второй параметр типа обозначал подкласс, производный от класса Thread.Это задание имеет следующее решение:class FlightSched {
Внесите изменения в класс FlightSched таким образом, чтобы второй параметртипа стал подклассом первого параметра типа.Это задание имеет следующее решение:class FlightSchedCT, V extends Т> {
Что обозначает знак ? в обобщениях?Знак ? обозначает метасимвольный аргумент, который соответствует любому допустимому типу.
Может ли метасимвольный аргумент быть ограниченным?Да. Метасимвольный аргумент может ограничиваться как сверху, так и снизу.
У обобщенного метода My Gen () имеется один параметр типа, определяющий типпередаваемого ему аргумента. Этот метод возвращает также объект, тип которого соответствует параметру типа. Как должен быть объявлен метод MyGen () ?Это задание имеет следующее решение:<Т> Т MyGen(Т о) {//.. .
Допустим, обобщенный интерфейс объявлен так, как показано ниже,interface IGenlFCT, V extends Т> { // ...Составьте объявление класса MyClass, который реализует интерфейс I Gen IF.Это задание имеет следующее решение:class MyClass implements IGenlFCT, V> { // ...
Допустим, имеется обобщенный класс Counter. Как создать объект его базовоготипа?Для того чтобы получить базовый тип из обобщенного класса Counter, достаточно указать его имя, не обозначая тип, как показано ниже.Counter х = new Counter;588 Java 7r руководство для начинающих, 5-е издание
Существуют ли параметры типа на стадии выполнения программы?Нет. Все параметры типа удаляются на стадии компиляции и заменяются соответствующими приводимыми типами. Этот процесс называется стиранием.
Видоизмените ответ на вопрос 10 в упражнении по материалу главы 9 таким образом, чтобы сделать класс обобщенным. По ходу дела создайте интерфейс стекаIGenStack, объявив в нем обобщенные методы push () и pop ().// Обобщенный стек.interface IGenStack {void push(T obj) throws StackFullException;T pop() throws StackEmptyException;}// Исключение, возникающее при переполнении стека,class StackFullException extends Exception {int size;StackFullException(int s) { size = s; }public String toString() {return "nStack is full. Maximum size is " + size;}}// Исключение, возникающее при обращении к пустому стеку,class StackEmptyException extends Exception {public String toString() {return "nStack is empty.”;}}// Класс, реализующий стек для хранения объектов обобщенного типа,class GenStack implements IGenStack {private T stck[]; // Массив для хранения элементов стекаprivate int tos; // Вершина стека// построить пустой стек заданного размераGenStack(T[] stckArray) {stck = stckArray;tos = 0;}// построить один стек из другого стекаGenStack(T[] stckArray, GenStack ob) {tos = ob.tos;stck = stckArray;try {Приложение А. Ответы на вопросы для самопроверки 589if(stck.length < ob.stck.length)throw new StackFullException(stck.length);}catch(StackFullException exc) {System.out.println(exc);}// скопировать элементыfor(int i=0; i < tos; i++) >stck[i] = ob.stck[i];}// построить стек с исходными значениямиGenStack(T[] stckArray, Т[] а) {stck = stckArray;for(int i = 0; i < a.length; i++) {try {push(a [i]);}catch(StackFullException exc) {System.out.println(exc);}}}// поместить объекты в стекpublic void push(T obj) throws StackFullException {if(tos==stck.length)throw new StackFullException(stck.length);stck[tos] = obj;tos++;}// извлечь объекты из стекаpublic Т pop() throws StackEmptyException {if(tos==0)throw new StackEmptyException();tos—;return stck[tos];}}// продемонстрировать применение класса GenStackclass GenStackDemo {public static void main(String args[]) {// создать пустой стек на 10 элементов типа IntegerInteger iStore[] = new Integer[10];GenStack stkl = new GenStack (i'Store) ;// построить стек из массиваString name[] = {"One", "Two", "Three"};String strStore[] = new String[3];GenStack stk2 =new GenStack(strStore, name);String str;int n;try {// поместить ряд значений в стек stklfor(int i=0; i < 10; i++)stkl.push(i);} catch(StackFullException exc) {System.out.println(exc);}// построить один стек из другого стекаString strStore2[] = new String[3];GenStack stk3 =new GenStack(strStore2, stk2);try {// отобразить стекиSystem.out.print("Contents of stkl: ");for(int i=0; i < 10; i++) {n = stkl.pop();System.out.print(n + " ");}System.out.println("n");System.out.print("Contents of stk2: ");for(int i=0; i < 3; i++) {str = stk2.pop();System.out.print(str + " ");}System.out.println("n");System.out.print("Contents of stk3: ");for(int i=0; i < 3; i++) {str = stk3.pop();System.out.print(str + " ");}} catch(StackEmptyException exc) {System.out.println(exc);}System.out.println();}}Приложение А. Ответы на вопросы для самопроверки 591
Что обозначают угловые скобки (< >)?Угловые скобки обозначают ромбовидный оператор.
Как упростить приведенную ниже строку кода в версии JDK 7?MyClass obj = new MyClass(1.1,"Hi");Эту строку кода можно упростить, используя ромбовидный оператор следующимобразом:MyClass obj = new MyClasso(1.1,"Hi");Глава 14. Апплеты, события и прочее
Какой метод вызывается первым в начале выполнения апплета? Какой метод вызывается, когда апплет должен быть удален из системы?Выполнение апплета начинается с вызова метода init (). А перед удалением апплета вызывается метод destroy ()..
Почему в апплете, который должен работать постоянно, следует организовать многопоточный режим?Многопоточный режим необходим в постоянно выполняющемся апплете, потому что апплет — это управляемая событиями прикладная программа, в которой непредусмотрены длительные операции. Например, метод paint () не будет вызван дотех пор, пока метод start () не возвратит управление.

