- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Java: руководство для начинающих (ЛП) - Шилдт Герберт
Шрифт:
Интервал:
Закладка:
“Один интерфейс — множество методов” — главный принцип Java. Какое языковоесредство лучше всего демонстрирует этот принцип?Этот принцип объектно-ориентированного программирования лучше всего демонстрирует интерфейс.
Сколько классов могут реализовать один и тот же интерфейс? Сколько интерфейсовможет реализовать класс?Один интерфейс может быть реализован любым количеством классов. Класс можетреализовать произвольное число интерфейсов.
Может ли один интерфейс наследовать другой интерфейс?Да, может. Механизм наследования распространяется и на интерфейсы.
Создайте интерфейс для класса Vehicle, рассмотренного в главе 7, назвав егоIVehicle.interface IVehicle {// возвратить дальность действия транспортного средстваint range();// рассчитать объем топлива, требующегося// для прохождения заданного путиdouble fuelneeded(int miles);// Методы доступа к переменным экземпляра.int getPassengers();void setPassengers(int p);int getFuelcap();void setFuelcap(int f);int getMpg();void setMpg(int m);}
Переменные, объявленные в интерфейсе, неявно считаются как static и final.Какие преимущества это дает?Переменные, объявленные в интерфейсе, могут служить в качестве именованныхконстант, общих для всех файлов программы. Доступ к ним обеспечивается путемимпорта того интерфейса, в котором они объявлены.
Пакет, по существу, является контейнером для классов. Верно или не верно?Приложение А. Ответы на вопросы для самопроверки 575Верно.
Какой стандартный пакет импортируется по умолчанию в любую программу на Java?Пакет java.lang.Глава 9. Обработка исключений
Какой класс находится на вершине иерархии исключений?На вершине иерархии исключений находится класс Throwable.
Объясните вкратце, как пользоваться ключевыми словами try и catch?Ключевые слова try и catch используются совместно. Операторы программы дляотслеживания исключений помещаются в блок try. А перехват и обработка исключений осуществляются в блоке catch.
Какая ошибка допущена в приведенном ниже фрагменте кода?II ...vals[18] = 10;catch (ArraylndexOutOfBoundsException exc) {// обработать ошибку}Блоку catch не предшествует блок try.
Что произойдет, если исключение не будет перехвачено?Если исключение не будет перехвачено, произойдет аварийное завершение программы.
Какая ошибка допущена в приведенном ниже фрагменте кода?class A extends Exception { ...class В extends А { ...II ...try {II ...}catch (A exc) { ... }catch (B exc) { ... }В данном фрагменте кода оператор catch для суперкласса предшествует операторуcatch для подкласса. А поскольку оператор catch для суперкласса может обработать также исключения, относящиеся к подклассу, то в программе окажется код, недоступный для выполнения.
Может ли внутренний блок catch повторно генерировать исключение, которое будет обработано во внешнем блоке catch?Да, исключения могут генерироваться повторно.
Блок finally — последний фрагмент кода, выполняемый перед завершением программы. Верно или неверно? Обоснуйте свой ответ.Неверно. Блок finally выполняется по завершении блока try.
Исключения какого типа необходимо явно объявлять с помощью оператора throws,включаемого в объявление метода?С помощью оператора throws объявляются все исключения, кроме RuntimeException и Error.
Какая ошибка допущена в приведенном ниже фрагменте кода?class MyClass { // ... }// ...throw new MyClass();Класс MyClass не является производным от класса Throwable. С помощью оператора throw могут генерироваться лишь те исключения, которые являются подклассами, производными от класса Throwable.
Отвечая на вопрос 3 упражнения для самопроверки по материалу главы 6, вы создали класс Stack. Добавьте в него специальные исключения для реагирования на попытку поместить элемент в переполненный стек и извлечь элемент из пустого стека.// Исключение, возникающее при переполнении стека,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 Stack {private char stck[]; // Массив для хранения элементов стекаprivate int tos; // Вершина стека// построить пустой стек заданного размераStack(int size) {stck = new char[size]; // выделить память для стекаtos = 0;}// построить один стек из другого стекаStack(Stack ob) {tos = ob.tos;stck = new char[ob.stck.length];Приложение А. Ответы на вопросы для самопроверки 577// скопировать элементыfor(int i=0; i < tos; i++)stck[i] = ob.stck[i];}// построить стек с исходными значениямиStack(char а [ ]) {stck = new char[a.length];for(int i = 0; i < a.length; i++) {try {push (a [i]);}catch(StackFullException exc) {System.out.println(exc);}}}// поместить символы в стекvoid push(char ch) throws StackFullException {if(tos==stck.length)throw new StackFullException(stck.length);stck[tos] = ch;tos++;}// извлечь символы из стекаchar pop() throws StackEmptyException {if(tos==0)throw new StackEmptyException();tos — ;return stck[tos];}}
Какими тремя способами можно сгенерировать исключение?Исключение может быть сгенерировано в результате ошибки в виртуальной машинеJava, ошибки в программе или явным образом с помощью оператора throw.
Назовите два подкласса, производных непосредственно от класса Throwable.Классы Error и Exception
Что такое многократный перехват?Многократным называется такой перехват, который позволяет перехватывать дваи больше исключений одним оператором catch.
Следует ли перехватывать в программе исключения типа Error?Нет, не следует.Глава 10. Ввод-вывод данных
Для чего в Java определены как байтовые, так и символьные потоки?Байтовые потоки с самого начала были определены в Java. Они особенно удобныдля ввода-вывода двоичных данных и поддерживают произвольный доступ к ним вфайлах. А символьные потоки оптимизированы для представления в уникоде.
Как известно, ввод-вывод данных на консоль осуществляется в текстовом виде.Почему же в Java для этой цели используются байтовые потоки?Стандартные потоки ввода-вывода System, in, System.out и System.err былиопределены в Java прежде символьных потоков.
Как открыть файл для чтения байтов?Ниже приведен один из способов открытия файла для ввода данных типа byte.FilelnputStream fin = new FilelnputStream("test");
Как открыть файл для чтения символов?Ниже приведен один из способов открытия файла для ввода символов.FileReader fr = new FileReader("test");
Как открыть файл для ввода-вывода с произвольным доступом?Ниже приведен один из способов открытия файла для ввода-вывода с произвольным доступом.randfile = new RandomAccessFile("test", "rw");
Как преобразовать числовую строку "123.23" в двоичный эквивалент?Для того чтобы преобразовать числовую строку в двоичный эквивалент, следует воспользоваться одним из методов синтаксического анализа, определенных в классахоболочек типов, например Integer или Double.
Напишите программу, которая будет копировать текстовые файлы. Видоизмените еетаким образом, чтобы все пробелы заменялись дефисами. Используйте при написании программы классы, представляющие байтовые потоки, а также традиционныйспособ закрытия файла явным вызовом метода close ()./ Копирование текстового файла с заменой пробелов дефисами.В этой версии программы используются байтовые потоки.Для того чтобы воспользоваться этой программой, укажитев командной строке имена исходного и целевого файлов. Например:java Hyphen source target/import java.io.*;class Hyphen {public static void main(String args[]){int i;FilelnputStream fin = null;FileOutputStream fout = null;Приложение А. Ответы на вопросы для самопроверки 579// проверить сначала, указаны ли оба файлаif(args.length !=2 ) {System.out.println("Usage: Hyphen From To");return;}// скопировать файл и заменить в нем пробелы дефисамиtry {fin = new FilelnputStream(args[0]);fout = new FileOutputStream(args[1]);do {i = fin.read();// преобразовать пробел в дефисif((char)i == ' ') i =if(i != -1) fout.write(i);} while(i != -1);} catch(IOException exc) {System.out.println("I/O Error: " + exc);} finally {try {if (fin != null) fin.closeO;} catch(IOException exc) {System.out.println("Error closing input file.");}try {if(fin != null) fout.close();} catch(IOException exc) {System.out.println("Error closing output file.");}}}}

