Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Классы и пакеты классов Java

Поиск

Базовым элементом объектно-ориентирован­ного программирования в языке Java являет­ся класс. Как известно, классы содержат поля и методы и могут наследовать друг друга. Синтаксис языка Java весьма напоминает синтаксис языка C++.

Имена встроенных классов Java образуют иерархию. Эти классы объединяются в пакеты. Каждый пакет использует свой уникальный набор классов. Пакеты — это механизм, который служит как для работы с пространством имен классов, так и для ограничения видимости. Каждый файл на исходном языке (.java) имеет общую форму:

любое количество операторов import (необязательны);

одиночное объявление открытого (public) класса;

любое количество закрытых (private) классов пакета (необязательны).

Оператор import. До любого определения классов в исход­ном файле Java может присутствовать список операторов import. Паке­ты являются хорошим механизмом для отделения классов друг от друга, поэтому все встроенные в Java классы хранятся в пакетах. Общая форма оператора import такова:

import пакет1 [.пакет2].(имякласса|*);

Здесь пакет1 имя пакета верхнего уровня, пакет2 это необя­зательное имя пакета, вложенного в первый пакет и отделенное точкой. И, на­конец, после указания пути в иерархии пакетов указываются либо имя класса, либо символ «звездочка». Звездочка означает, что, если Java-транслятору потребуется какой-либо класс, для которого имя класса не указано явно, он должен просмотреть все содержимое пакета со звездочкой вмес­то имени класса. В приведенном ниже фрагменте кода показаны обе формы использования оператора import:

import java.util.Date

import java.io.*;

Все встроенные в Java классы, которые входят в комплект поставки, хранятся в пакете с именем java. Базовые функции языка хранятся во вложенном пакете java.lang. Весь этот пакет автоматически импортируется транслятором во все программы. Это эквивалентно размещению в начале каждой программы оператора

import java.lang.*;

Обработка исключений

Исключение в Java — это объект, который описывает исключительное состояние, воз­никшее в каком-либо участке программного кода. Когда возникает ис­ключительное состояние, создается объект класса Exception. Этот объект пересылается в метод, обрабатывающий данный тип исключительной ситуации. Исключения могут возбуждаться и «вруч­ную» для того, чтобы сообщить о некоторых нештатных ситуациях.

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

Ниже приведена общая форма блока обработки исключений.

try {

// блок кода }

catch (ТипИсключения1 е) {

// обработчик исключений типа ТипИсключения1 }

catch (ТипИсключения2 е) {

// обработчик исключений типа ТипИсключения2 }

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

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

class Exc0 {

public static void main(string args[]) { int d = 0; int a = 42 / d; } }

Вот результат, полученный при запуске нашего примера.

С:\> java Exc0

java.lang.ArithmeticException:/by zero at xc0.main(Exc0.java:4)

Обратите внимание на тот факт, что типом возбужденного исклю­чения был не Exception. Это подкласс класса Exception, а именно: ArithmeticException, поясняющий, какая ошибка возникла при выполнении программы.

try и catch. Для задания блока программного кода, который требуется защитить от исключений, исполь­зуется ключевое слово try. Сразу же после try-блока помещается блок catch, задающий тип исключения, которое вы хотите обрабатывать.

class Exc2 {public static void main(String args[]) {

try { int d = 0; int a = 42 / d;}

catch (ArithmeticException e) {

out.println("division by zero");}}}

Целью большинства хорошо сконструированных catch-разделов долж­на быть обработка возникшей исключительной ситуации и приведение переменных программы в некоторое разумное состояние — такое, чтобы программу можно было продолжить так, будто никакой ошибки и не было (в нашем примере выводится предупреждение – division by zero).

Несколько разделов catch. В некоторых случаях один и тот же блок программного кода может воз­буждать исключения различных типов. Для того, чтобы обрабатывать по­добные ситуации, Java позволяет использовать любое количество catch-разделов для try-блока. Наиболее специализированные классы исключений должны идти первыми, поскольку ни один подкласс не будет достигнут, если поставить его после суперкласса. Следующая про­грамма перехватывает два различных типа исключений, причем за этими двумя специализированными обработчиками следует раздел catch общего назначения, перехватывающий все подклассы класса Throwable.

class MultiCatch {public static void main(String args[]) {

try{int a = args.length; out.println("a = " + a);

int b = 42 / a; int c[] = { 1 }; c[42] = 99; }

catch (ArithmeticException e) {

out.println("div by 0: " + e); }

catch(ArrayIndexOutOfBoundsException e) {

out.println("array index oob: " + e); } } }

Этот пример, запущенный без параметров, вызывает возбуждение ис­ключительной ситуации деления на нуль. Если же мы зададим в командной строке один или несколько параметров, тем самым установив а в значение боль­ше нуля, наш пример переживет оператор деления, но в следующем опе­раторе будет возбуждено исключение выхода индекса за границы масси­ва ArrayIndexOutOf Bounds.

 

Теги JSP

Эти теги позволяют, обрабатывая JSP-страницы с помощью Web-сервера, интерпретировать Java- код в обычные HTML-теги.

В JSP различаются следующие виды тегов:

1. Тег объявления <%! %>.

Этот тег позволяет объявить переменные. Операторы объявления заканчиваются;.

Объявления используются вместе с выражениями.

Например,

<%!

int counter = 0;

%>

2. Тег выражения <%= %>.

Этот тег позволяет включить любое выражение Java и является короткой формой для out.println().; не ставится в конце выражения.

Например, чтобы показать текущие дату и время

Date: <%= new java.util.Date() %>

3. Тег скриптлета <% … %>.

Между границами тега можно размещать любые операторы Java. Например, печать переменной

<% String username = “visualbuilder”; out.println (username);%>

Сессия JSP

 

Посетитель web-сайта может посещать разные страницы и выполнять разные действия.

Полезно связать некоторые данные с каждым посетителем. Для этой цели используется объект "сессия" (session).

Данные могут сохраняться в сессии и считываться из сессии с помощью методов объекта соответственно:

setAttribute(строковое имя переменной сессии, имя сохраняемой переменной) и

getAttribute(строковое имя переменной сессии) – возвращает значение сохраненной переменной.

Объекты формы могут быть доступны на следующей HTML-странице с помощью метода встроенного объекта JSP request.

getParameter(строковое имя объекта)

Эти объекты можно сохранять в переменных сеанса, доступных из всех страниц при работе одного пользователя с помощью объекта JSP session.

Например, пусть имеется страница

<% request.getSession(true); %>

<%String id =new String("12345"),im=new String("SSSS"); %>

<% session.setAttribute("idd", id);

session.setAttribute("imm", im); %>

<p><a href="isses.jsp">Go to</a></p>



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 215; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.221.171 (0.007 с.)