Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по ПИИ.docx
Скачиваний:
107
Добавлен:
26.03.2015
Размер:
207.29 Кб
Скачать
  1. Интерфейсы Java: назначение, принцип применения.

Интерфейсыпохожи на классы, но в отличие от последних у интерфейсов нет экземплярных переменных, а в объявлениях методов отсутствует реализация (нет тела, а только сигнатура). Класс может иметь (говорят – может реализовать) любое количество интерфейсов. Если для класса определены интерфейсы, то этот класс должен реализовать полный набор методов всех интерфейсов. При этом сигнатуры таких методов класса должны точно совпадать с сигнатурами методов интерфейсов. Интерфейсы обладают своей собственной иерархией, не пересекающейся с классовой иерархией наследования. Это дает возможность реализовать один и тот же интерфейс в различных классах, никак не связанных по линии иерархии классового наследования. Исходный код интерфейсов располагается в файлах с расширениемjava. Откомпилированный файл имеет расширениеclass. Интерфейсы аналогично классам (и вместе с ними) могут храниться в пакетах и образовать их иерархии. Для интерфейсов, аналогично классам, применяется механизм наследования. При этом тоже используется ключевое словоextends.

Все переменные, объявленные в интерфейсе по умолчанию имеют свойство final(аналогconstв С++).

interface– ключевое слово, используемое для определения интерфейса.

implements– ключевое слова указывающее на то, что класс обязан реализовать интерфейс. После ключевого слова может быть перечислено несколько интерфейсов, которые реализует класс.

  1. Обработка исключений в Java. Конструкция try/catch/finally/throw. Применение ключевого слова throws в сигнатуре метода. Иерархия исключений в Java. Встроенные исключения. Создание пользовательских исключений.

Принципы обработки исключений.

К механизму обработки исключений в Java имеют отношение 5 ключевых слов: try,catch,throw,throwsиfinally. Схема работы этого механизма следующая:tryопределят блокохраняемого кода, и если при происходитисключение, возбуждаемое операторомthrow, то оно может бытьперехваченои обработано в блоке, определяемом ключевым словомcatch (таких блоков может несколько); блокfinally определяет код, который выполняется всегда, вне зависимости от того, произошла или нет обработка исключения.

Типы исключений.

Класс Throwable самый главный. Два наследника класса: один из них — классЕхception— используется для описания исключительных ситуации, которые должны перехватываться программным кодом пользователя, другой - классError, который предназначен для описания исключительных ситуаций, которые при обычных условиях не должны перехватываться в пользовательской программе.

Неперехваченные исключения.

Некоторые объекты-исключения автоматически создаются исполняющей средой Java в результате возникновения определенных исключительных состояний (деление на нуль). Кроме того, исключения могут создаваться программистом с помощью оператора throw. Если для типа исключения не присутствует блокcatch, то такое исключение прихватывается и обрабатывается стандартным обработчиком Javа, который как правило диагностирует исключение и выводит системный программный стек.

Вложенные операторы try.

Операторы try могут быть вложенными. Вложенность может быть явной (охраняемый код try-блока содержит операторtry) и не явной (охраняемый код содержит вызов методов, содержащих внутри себя конструкцииtrycatch-throw-finally). При этом следует помнить, что, если в непосредственно следующих за try-блоком блокахcatch, не будет найден подходящий обработчик, то поиск продолжается в вызывающем методе и так далее вверх по стеку.

Методы с ключевым словом throws.

Если метод способен к порождению исключения, которое им не обрабатывается, он должен сообщить о типах этих исключений в заголовке метода (сигнатуре) с помощью ключевого слова throws.

Встроенные исключения.

Встроенные исключения определены в пакете java.lang, который неявно импортирован во все java-программы. Большинство из них являются производными классаRuntimeException, который расширяет классException. Все эти исключения называютсянеконтролируемыми исключениями(unchecked)java, они неявно включаются в спискиthrowsвсех методов.

Кроме того, есть контролируемые (checked) исключения, применение которых требует их указания в списке throws.

Создание собственных подклассов исключений.

Собственные пользовательские исключения, определяются как подкласс класса Exception. КлассException не определяет своих методов, а наследует их от классаThrowable. Собственный классисключение может переопределить эти методы.

  1. Протокол HTTP. Стандарты HTTP. Основные методы (get, post, option, put, delete). Коды статуса ответа. Структура http-сообщений. Понятие о протоколе HTTPS.

HTTP(англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов).

Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.

HTTP в настоящее время повсеместно используется во Всемирной паутине для получения информации с веб-сайтов.

Метод HTTP (англ. HTTP Method)— последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. Обычно метод представляет собой короткое английское слово, записанное заглавными буквами. Обратите внимание, что название метода чувствительно к регистру.

Каждый сервер обязан поддерживать как минимум методы GETиHEAD. Если сервер не распознал указанный клиентом метод, то он должен вернуть статус501 (Not Implemented).Если серверу метод известен, но он не применим к конкретному ресурсу, то возвращается сообщение с кодом405 (Method Not Allowed).В обоих случаях серверу следует включить в сообщение ответа заголовок Allow со списком поддерживаемых методов.

Кроме методов GETиHEAD, часто применяется методPOST.